Skocz do zawartości

Formatowanie adresu na wydrukach

Polecane posty

W przypadku etykiet adresowych, cały adres tworzony jest przez kontrolki zawierające pojedyncze dane. Jeśli któreś z pól adresu jest puste, wtedy na wydruku powstaje dodatkowy odstęp. Można temu zaradzić dokonując kilku zmian, oraz formatując cały adres za pomocą skryptu.

 

Zalety i właściwości:

1. W przypadku obecności nazwy firmy jak i imienia z nazwiskiem całość będzie sformatowana następująco: Firma - Imię nazwisko. Jeśli tylko jedna z tym danych będzie dostępna to zostanie wyświetlona tylko ona, bez spacji i myślników jak było w rozwiązaniu wcześniejszym.

2. Brak luk pomiędzy wierszami. Jeśli wierszy jest więcej (np adres linia 2) lub wiersz nie mieści się w jednej linii to zostanie dołożony wiersz.

3. Miasto wypisywane jest tuż za kodem pocztowym, WIELKIMI literami.

4. Jeśli państwem docelowym nie jest polska, to nazwa państwa zostanie wstawiona na samym końcu, pod kodem pocztowym. (skrypt porównuje nazwę państwa ze słowem "polska", nie patrząc na wielkość liter)

 

 

Po pierwsze, zamiast kilku kontrolek z tekstem należy wstawić/pozostawić jedną z nich. Na rysunku poniżej widać starą i nową wersję. Kontrolkę należy rozciągnąć możliwie najszerzej, aby zajmowała całą dostępną przestrzeń w której będzie mógł się pojawić adres.

 

formatowanie_adresu1.png.2512f07ea98bbb763155830035447fd3.png

 

Następnie należy upewnić się, że pole nie jest powiązane ze źródłem danych - nie jest to potrzebne (pole Tekst ma być puste, przy polu nie może być ikonki walca symbolizującej bazę danych). Dodatkowo należy zaznaczyć dwie opcje, wiele linii i zawijanie wierszy

 

formatowanie_adresu2.png.b84f0aac377277c4e4fafe8dfb1ddc90.png

 

Następnie, należy dodać dla tej kontrolki (najpierw ją zaznaczyć w edytorze) skrypt formatujący adres, odszukując na liście właściwości odpowiednie pole i naciskając ikonkę edycji.

 

formatowanie_adresu3.png.45810201ca80662934effc107a4a428a.png

 

Należy tam wkleić poniższy kod, zastępując wszystko co tam jest.

 

private void OnBeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
System.Text.StringBuilder adres = new System.Text.StringBuilder(100);
if( !String.IsNullOrEmpty(xtraReport1.GetCurrentColumnValue("Odbiorca_Firma").ToString()) )
{
	adres.Append( xtraReport1.GetCurrentColumnValue("Odbiorca_Firma") );
	if( !String.IsNullOrEmpty(xtraReport1.GetCurrentColumnValue("Odbiorca_ImieNazwisko").ToString()) )
		adres.AppendFormat(" - {0}", xtraReport1.GetCurrentColumnValue("Odbiorca_ImieNazwisko") );
}
else
	adres.Append(xtraReport1.GetCurrentColumnValue("Odbiorca_ImieNazwisko") );	
adres.AppendLine();
if( !String.IsNullOrEmpty(xtraReport1.GetCurrentColumnValue("Odbiorca_AdresLinia1").ToString()) )
	adres.AppendLine( xtraReport1.GetCurrentColumnValue("Odbiorca_AdresLinia1").ToString());
if( !String.IsNullOrEmpty(xtraReport1.GetCurrentColumnValue("Odbiorca_AdresLinia2").ToString()) )
	adres.AppendLine( xtraReport1.GetCurrentColumnValue("Odbiorca_AdresLinia2").ToString());

adres.AppendFormat("{0} {1}", xtraReport1.GetCurrentColumnValue("Odbiorca_KodPocztowy").ToString(),
				xtraReport1.GetCurrentColumnValue("Odbiorca_Miasto").ToString().ToUpper() );
System.String panstwo = xtraReport1.GetCurrentColumnValue("Odbiorca_Panstwo").ToString();
if( !String.IsNullOrEmpty(panstwo) && panstwo.ToLower() != "polska" )
{
	adres.AppendLine();
	adres.Append(panstwo);
}	

((XRLabel)sender).Text = adres.ToString(); 
}
 

 

Na koniec, można jeszcze ustalić w którym miejscu powinien się ten adres pojawiać, wybierając odpowiednie położenie tekstu we właściwościach kontrolki z adresem.

 

formatowanie_adresu4.png.57bcdb68f39165bfbe76fefdf16b28a0.png

 

Najlepsze zdaje się być przyleganie do lewej i centrowanie w pionie, lub centrowanie tekstu w pionie i poziomie - ale to już kwestia gustu :)

 

No i porównanie, od lewej: wersja poprzednia, nowa wersja wyrównana do lewej i wycentrowana w pionie, nowa wersja wycentrowana w pionie i poziomie

 

formatowanie_adresu5.png.9ba3d30da9c2988af6a0205fd11e1aab.png

 

Wszelkie sugestie mile widziane. Jeśli rozwiązanie się przyjmie zostanie wprowadzone do wszystkich naszych wydruków.

Link to postu
  • 4 lata później...

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Użytkownik forum
Odpowiedz...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...