Bartosz Rosa 1 759 Napisano 2 Października 2009 Udostępnij Napisano 2 Października 2009 w Formatowanie adresu na wydrukach 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. 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 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. 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. 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 Wszelkie sugestie mile widziane. Jeśli rozwiązanie się przyjmie zostanie wprowadzone do wszystkich naszych wydruków. Cytuj Link to postu
Ks. Robak 314 Napisano 21 Stycznia 2014 Udostępnij Napisano 21 Stycznia 2014 w Formatowanie adresu na wydrukach Super Cytuj Link to postu
Polecane posty
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.