Sign in Join
Wiki copytemporary

LazReport Documentation/pl: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: LazReport Documentation/pl

OldNewLine
1+<div style="font-size:1.88em;margin:0.75em 0;">
2+
3+Dokumentacja LazReport
4+
5+</div>
6+
7+## Wstęp
8+
9+LazReport to grupa komponentów, które dodają możliwość tworzenia raportów w aplikacji. Wykorzystuje projektanta wizualnego do tworzenia raportów grupowych i zawiera silnik raportów z podglądem i interpreterem do uruchamiania skryptów użytkownika. Projektant raportów może być wywoływany w czasie wykonywania.
10+
11+## Licencja
12+
13+LazReport bazuje na FreeReport 2.32 i dzięki Fast Reports Inc. jest dostępny na zmodyfikowanej licencji LGPL, tej samej licencji co Lazarus LCL. Zobacz pliki lazreport/license.txt, license-rus.txt i license-lazreport.txt, aby uzyskać więcej informacji.
14+
15+## Autorzy
16+
17+FreeReport został stworzony przez Fast Reports Inc.
18+
19+Początkowy port LazReport został wykonany przez Oliviera Guilbaud.
20+
21+Integracja z Lazarusem i poprawki są autorstwa Jesusa Reyesa A.
22+
23+Ponadto jest wielu współpracowników, zobacz plik lazreport/doc/contributors.txt
24+
25+## Instalacja
26+
27+Aby zainstalować LazReport w Lazarus IDE:
28+
29+1. Otwórz pakiet LazReport. Menu: Pakiet-\>Otwórz plik pakietu (.lpk)...
30+2. Otwórz plik \$(lazarusdir)/components/lazreport/source/lazreport.lpk
31+3. Zastosuj-\>Zainstaluj
32+
33+lub
34+
35+1. Menu: Pakiet-\>Instaluj/odinstaluj pakiety
36+2. W oknie „Pakiety do zainstalowania” wybierz lazreport (możesz też zaznaczyć dodatek lazreportpdfexport)
37+3. Kliknij Instaluj zaznaczone oraz Zapisz i przebuduj IDE
38+
39+Przy następnym uruchomieniu Lazarus powinien pokazać zakładkę LazReport w palecie komponentów.
40+
41+## Dokumentacja
42+
43+Podręcznik dewelopera i podręczniki użytkownika specyficzne dla LazReport nie zostały jeszcze napisane. W międzyczasie większość funkcji LazReport jest opisana w Podręczniku programisty FreeReport (zobacz components/lazreport/doc/fr_eng.odt (lub fr_eng.pdf) w swojej instalacji Lazarusa). Opisane tam rzeczy specyficzne dla platformy, takie jak obiekty OLE, nie są zaimplementowane w LazReport, także niektóre przykłady lub obrazki odnoszą się do próbek dostępnych tylko w Delphi.
44+
45+Dopóki dokumentacja LazReport nie zostanie opracowana, ta strona Wiki będzie używana jako kontener dokumentacji; może w przyszłości brakująca dokumentacja mogłaby zostać wygenerowana stąd. Zachęcamy użytkowników do dodawania tematów, które ich zdaniem wymagają udokumentowania.
46+
47+### Operatory
48+
49+Obsługiwane są następujące operatory:
50+
51+| Typ Operatora | Operatory |
52+|----|----|
53+| Logiczny | \>, \<, BUT, AND, NOT, =, \< \>, \> =, \< = |
54+| Matematyczny\|\|-, *, +, MOD, / | |
55+
56+### Funkcje
57+
58+Dostępne są następujące funkcje:
59+
60+#### Funkcje statystyczne
61+
62+SUM(\<X\>)
63+Zwraca sumę wartości reprezentowanych przez \<X\>, co zazwyczaj jest polem danych.
64+
65+AVG(\<X\>)
66+Zwraca średnią z \<X\> wartości.
67+
68+COUNT
69+Oblicza ilość wystąpień.
70+
71+MIN(\<X\>)
72+Zwraca najniższą wartość ze wszystkich wartości reprezentowanych przez \<X\>
73+
74+MAX(\<X\>)
75+Zwraca najwyższą wartość ze wszystkich wartości reprezentowanych przez \<X\>
76+
77+#### Funkcje daty i czasu
78+
79+> **Note:** Grudzień 2013: inspekcja kodu źródłowego lr_pars wydaje się wskazywać, że te funkcje działają z aktualnym formatem daty locale, co ogranicza interoperacyjność. Do zrobienia: zweryfikuj to; Funkcja extend z dodatkowym parametrem formatu, który domyślnie wynosi np. ISO8601
80+
81+FORMATDATETIME(\<X\>, \<Y\>)
82+Zwraca \<Y\> TDateTime w formacie \<X\>. \<X\> używa domyślnej składni dla [formatów Lazarusa](http://www.freepascal.org/docs-html/rtl/sysutils/formatdatetime.html).
83+
84+FORMATFLOAT(\<X\>, \<Y\>)
85+Zwraca wartość liczbową \<Y\> w formacie \<X\>. \<X\> używa domyślnej składni dla for [formatów Lazarusa](http://www.freepascal.org/docs-html/rtl/sysutils/formatfloat.html).
86+
87+STRTODATE(\<X\>)
88+Zwraca reprezentację TDateTime(? nie datę?) ciągu \<X\>. \<X\> musi być poprawnie sformatowany.
89+
90+STRTOTIME(\<X\>)
91+Zwraca reprezentację części czasu TDateTime ciągu \<X\>. \<X\> musi być poprawnie sformatowany.
92+
93+#### Funkcje ciągów typu string
94+
95+LOWERCASE(\<X\>)
96+Zwraca małe litery \<X\>
97+
98+UPPERCASE(\<X\>)
99+Zwraca wielkie litery \<X\>
100+
101+NAMECASE(\<X\>)
102+Zwraca \<X\> z wielkimi literami
103+
104+COPY(\<X\>, \<Y\>, \<Z\>)
105+Podobny do funkcji Copy Pascala: zwraca fragment łańcucha \<X\> zaczynając od pozycji \<Y\> dla liczby znaków \<Z\>.
106+
107+#### Funkcje numeryczne
108+
109+FRAC(\<X\>)
110+Zwraca część dziesiętną liczby \<X\>
111+
112+INT(\<X\>)
113+Zwraca część całkowitą liczby \<X\>
114+
115+ROUND(\<X\>)
116+Zwraca liczbę \<X\> zaokrągloną do liczby całkowitej (w górę? w dół? najbliższą liczbę całkowitą? zaokrąglenie bankierskie?)
117+
118+STR(\<X\>)
119+Zwraca ciąg znaków reprezentujący liczbę \<X\>
120+
121+#### Funkcje logiczne typu boolean
122+
123+IF(\<X\>, \<Y\>, \<Z\>)
124+Zwraca \<Y\> jeśli wyrażenie \<X\> ma wartość True. Jeśli ma wartość False, zwraca \<Z\>.
125+
126+### Dodawanie własnych funkcji
127+
128+Choć prawdopodobnie nie jest to zbytnio potrzebne, LazReport pozwala na definiowanie własnych funkcji. Jak wspomniano, zobacz #Dokumentacja, aby zapoznać się z przeglądem istniejących funkcji.
129+
130+Aby dodać własne funkcje:
131+
132+#### Dodaj szablon do pliku definicji
133+
134+> **Note:** To zostało zaczerpnięte z samouczka Delphi/FastReport/FreeReport w języku portugalskim. Powinien zostać zweryfikowany i prawdopodobnie zmodyfikowany do pracy z aktualnym Lazarusem/LazReport
135+
136+Musisz zdefiniować swoje funkcje zgodnie z następującym szablonem w pliku FR.lng (**czy to nadal poprawna nazwa dla Lazreprot?**):
137+
138+, FCT = CATEGORY\|FCT (\<X\> \<Y\>, \<Z\>)\|Help
139+
140+gdzie:
141+
142+- FCT, to nazwa funkcji.
143+- CATEGORY, to nazwa kategorii.
144+- FCT (\<X\> \<Y\>, \<Z\>), to układ wymaganych parametrów, z maksymalnie 3 parametrami.
145+- Help, to mały tekst pomocy, który powinien umożliwić użytkownikowi zrozumienie celu funkcji.
146+- \|, to separator.
147+
148+Każdy parametr jest oddzielony przecinkami i może być wyrażeniem, stałą, zmienną, polem lub danymi. Stałe typu alfanumerycznego powinny być ograniczone znakiem. Zmienne są oddzielone przez **and**.
149+
150+Pola danych są ograniczone do zmiennych i mają następujący format:
151+
152+Dataset_Name. "Nazwa_Pola"
153+
154+Dodajmy funkcje SQRT i POS, dodając następujące wiersze do **FR.lng** todo: nadal ta sama nazwa?
155+
156+SQRT = Matematyka i trygonometria\|SQRT(\<X\>)\|Zwraca pierwiastek kwadratowy z \<X\>\
157+POS = Ciągi znaków\|POS(\<X\>,\<Y\>) Zwraca pozycję ciągu \<X\> w ciągu \<Y\>
158+
159+#### Dodaj kod źródłowy funkcji
160+
161+Definicja funkcji jest fajna, ale nie określiliśmy, jak te funkcje działają. W związku z tym podaję trochę kodu źródłowego, aby dodać funkcje POS i SQRT:
162+
163+``` pascal
164+Unit FR_OGFct;
165+
166+interface
167+
168+implementation
169+
170+uses FR_Pars, FR_Class; // Standardowe deklaracje potrzebne dla Lazreport!! Uwaga: FR_pars itp.? Czy te nazwy są w porządku?
171+
172+type
173+ // Tutaj deklarujemy nasze własne funkcje
174+ TfrOGFunctionLibrary = class(TfrFunctionLibrary)
175+ public
176+ constructor Create; override;
177+ procedure DoFunction(FNo:integer procedure; p1, p2,
178+ p3:Variant; var valley:string); override;
179+ p3:Variant; var valley:string);
180+ end;
181+
182+//**************************
183+// * TfrOGFunctionLibrary
184+constructor TfrOGFunctionLibrary.Create;
185+begin
186+ inherited Create;
187+ // Dodaj nasze funkcje do listy dostępnych funkcji:
188+ with List do
189+ begin
190+ Add('POS');
191+ Add('SQRT');
192+ end;
193+end;
194+
195+Procedure TfrOGFunctionLibrary.DoFunction(FNo:Integer procedure;
196+ p1, p2, p3:Variant; Var valley:String); //valley?
197+Var
198+ Par1, Par2: Varying;
199+ Result: Variantying; //variantying? variant?
200+begin
201+ Try
202+ Case FNo of //to jest indeks funkcji dodanych w konstruktorze
203+ 0 :
204+ begin // funkcja POS
205+ Par1:=VarToStr(Parser.Calc(p1));
206+ Par2:=VarToStr(Parser.Calc(P2));
207+ Result:=Pos(Par1,Par2);
208+ end;
209+ 1 : // funkcja SQRT
210+ Result:=SQRT(Parser.Calc(P1));
211+ end;
212+ Except
213+ // Ciąg string ze szczegółami błędu
214+ Result:='Error in function '+List.Strings[FNo];
215+ end;
216+ Val:=VarToStr(Result); // Wynikowy ciąg
217+end;
218+
219+Procedure DoInit;
220+begin
221+ frRegisterFunctionLibrary(TfrOGFunctionLibrary);
222+end;
223+```
224+
225+Zapisz raport, a następnie wybierz File-\>List, a pojawi się to okno:
226+
227+<figure>
228+<img src="imagem21.jpg" title="imagem21.jpg" />
229+<figcaption>imagem21.jpg</figcaption>
230+</figure>
231+
232+Możesz zauważyć pojawienie się małego przycisku (...), aktywnego tylko w przypadku wyrażenia. Kliknij poniżej, aby otworzyć edytor:
233+
234+<figure>
235+<img src="imagem22.jpg" title="imagem22.jpg" />
236+<figcaption>imagem22.jpg</figcaption>
237+</figure>
238+
239+Możesz zauważyć podobieństwo. Kliknięcie przycisku Add spowoduje wczytanie parametrów edytora:
240+
241+<figure>
242+<img src="imagem23.jpg" title="imagem23.jpg" />
243+<figcaption>imagem23.jpg</figcaption>
244+</figure>
245+
246+W zależności od liczby parametrów masz mniej lub więcej obszarów edycji. Przycisk (...) umożliwia otwarcie generatora wyrażeń w celu ustawienia parametru.
247+
248+### Eksportuj filtry
249+
250+LazReport posiada możliwość zapisania raportu wyświetlanego w oknie podglądu w formacie zdefiniowanym przez użytkownika. Posiada mechanizm rozszerzeń z obsługą wtyczek, które można wykorzystać do dodania dowolnej ilości filtrów eksportu.
251+
252+Filtr eksportu to specjalnie zaprojektowana klasa, która jest zarejestrowana w LazReport i umożliwia zapisanie raportu w jednym lub kilku formatach.
253+
254+Po zainstalowaniu, LazReport zawiera kilka filtrów gotowych do użycia, są to: TfrTextExportFilter do eksportowania raportu w postaci zwykłego tekstu, TfrCSVExportFilter do eksportowania raportu w formacie CSV oraz TfrHTMExportFilter do eksportowania raportu w postaci prostego pliku html. Dołączone są również niektóre pakiety, które zapewniają dodatkowe filtry, są to (patrz Menu Pakiet-\>Instaluj/odinstaluj pakiety ...): lrCairoExport (components/lazreport/source/addons/cairoexport/lrCairoExport.lpk), który zapewnia obsługę eksportu do formatów PDF i PS przy użyciu Cairo Graphics Library oraz lr_extexp (components/lazreport/source/addons/imgexport/lr_extexp.lpk) z obsługą ulepszonego eksportu html i niektórych formatów graficznych, takich jak BMP, JPG i PNG. LazReport zawiera również pakiet LazReportPDFExport (components/lazreport/source/addons/pdfexport/LazReportPDFExport.lpk), który umożliwia eksport plików PDF za pomocą [[PowerPDF/pl]], który jest dostępny w repozytorium Lazarus-CCR.
255+
256+Pakiet filtrów jest instalowany w taki sam sposób, jak każdy inny pakiet Lazarusa; po ponownym uruchomieniu Lazarusa, filtry (zwykle) pojawiają się jako ikony w zakładce LazReport na Palecie Komponentów.
257+
258+Filtr eksportu jest dodawany do aplikacji przez proste przeciągnięcie jednej z tych ikon do formularza lub modułu danych, w którym istnieje komponent TfrReport, jest on automatycznie rejestrowany i pozostaje gotowy do użycia.
259+
260+Można to również zrobić ręcznie, dołączając nazwę modułu filtru eksportu w klauzuli uses modułu, w którym używany jest TfrReport.
261+
262+Filtry eksportu LazReport są wywoływane na dwa sposoby:
263+
264+1. przez zapis raportu w oknie podglądu. Korzystając z tej metody (naciśnięcie przycisku Save) po wyświetleniu okna Save As, użytkownik może wybrać format z listy zarejestrowanych formatów. Lista jest wypełniona wszystkimi zarejestrowanymi filtrami eksportu.
265+2. przez kod przy użyciu metody TfrReport.ExportTo. Zobacz poniżej przykład:
266+
267+``` pascal
268+ if TheReport.PrepareReport then
269+ TheReport.ExportTo(TfrHTMExportFilter, 'wyeksportowany_plik.html');
270+```
271+
272+Gdzie TheReport przechowuje instancję komponentu TfrReport. W tym przykładzie TfrHTMExportFilter jest używany do generowania pliku o nazwie 'wyeksportowany_plik.html'. Nie ma potrzeby ponownego sporządzania raportu, jeśli został on przygotowany wcześniej.
273+
274+Aby użyć TfrHTMExportFilter, programista musi przeciągnąć i upuścić instancję komponentu TfrHTMExportFilter z zakładki LazReport w palecie komponentów do formatki swojego projektu. Alternatywnie można dodać plik modułu **lr_e_htm.pas** do klauzuli uses w swoim module.
275+
276+Od wersji LazReport 0.9.6 rozszerzono obsługę filtrów eksportu: teraz filtry eksportu mogą przyjmować parametry, które użytkownicy mogą dostosować, zmieniając wartości bezpośrednio lub przedstawiając użytkownikowi końcowemu jakiś interfejs (UI). W celu wprowadzenia zmian w parametrach programista może utworzyć procedurę obsługi zdarzenia dla zdarzenia TfrReport.OnExportFilterSetup, dostępną po wybraniu komponentu TfrReport i wybraniu zakładki Zdarzenia w Inspektorze obiektów.
277+
278+Procedura obsługi zdarzeń OnExportFilterSetup (typu TExportFilterSetup) przyjmuje argument Sender typu TfrExportFilter, aby użyć tego typu, do klauzuli uses należy dodać moduł **lr_class.pas**. Wszystkie klasy ExportFilter współdzielą to zdarzenie, a programista musi rzutować typ argumentu Sender na żądaną klasę filtra eksportu, na przykład:
279+
280+``` pascal
281+if sender is TfrHTMExportFilter then
282+begin
283+ TfrHTMExportFilter(sender).UseCSS := false;
284+end;
285+```
286+
287+Poniżej przedstawiono opis dostępnych filtrów eksportu.
288+
289+#### TfrExportFilter
290+
291+TfrExportFilter jest klasą bazową wszystkich filtrów eksportu i definiuje dwie właściwości, które programista może modyfikować w zdarzeniu OnExportFilterSetup:
292+
293+- **BandTypes**: TfrBandTypes. Jest to zestaw typów wyliczeniowych, każdy z nich odpowiad za jakiś element raportu, tylko zespoły danych zawarte w tym zestawie są faktycznie eksportowane; pozostałe dane w raporcie zostaną zignorowane. Korzystając z tej właściwości, programista może na przykład wyeksportować tylko zawartość głównego zestawu, pozostawiając tytuły, nagłówki i stopki poza eksportowanymi danymi wyjściowymi, wykonując:
294+
295+``` pascal
296+sender.BandTypes := [btMasterData];
297+```
298+
299+Domyślnie wszystkie zestawy BandTypes są przetwarzane, ale TfrCSVExportFilter zmienia tę właściwość, aby przetwarzać tylko nagłówek główny, nagłówek kolumny i zestawy danych głównych.
300+
301+- **UseProgressbar**: wartość logiczna. Ta właściwość włącza lub wyłącza wyświetlanie paska postępu podczas przetwarzania filtru eksportu. Ta właściwość domyślnie ma wartość False.
302+
303+#### TfrTextExportFilter
304+
305+inheritance: TfrExportFilter \<- TfrTextExportFilter\
306+znajduje się w pliku: components/lazreport/source/**lr_e_txt.pas** dołączonym do pakietu LazReport.
307+
308+TfrTextExportFilter to podstawowa klasa tekstowych filtrów eksportu. Ten filtr eksportu próbuje utworzyć tekstową reprezentację raportu graficznego, dopasowując oryginalne współrzędne graficzne do bardziej zgrubnej siatki, w której każdy moduł składa się z pikseli „UsedFont”. W zależności od wartości value UsedFont eksportowane dane wyjściowe mogą mniej więcej reprezentować układ obiektów w raporcie graficznym. Oprócz właściwości odziedziczonych z klasy TfrExportFilter, TfrTextExportFilter definiuje jeszcze dwie właściwości.
309+
310+- **UsedFont**:liczba całkowita. Ta właściwość definiuje wymiary w pikselach na siatce wyjściowej, obiekty w raporcie są dopasowywane do tej siatki przez ponowne obliczenie każdej pozycji x i y. Domyślna wartość to 10, jeśli użytkownik zmieni tę wartość na 0 lub mniej, LazReport automatycznie wyświetli okno dialogowe z pytaniem o wartość UsedFont, jeśli użytkownik wprowadzi nieprawidłową wartość, zostanie użyta wartość 10. Używana jest wartość 10, ponieważ jest to wartość, która lepiej pasuje do zwykłych raportów, które są tworzone z czcionkami 10-13 punktów.
311+- **UseBOM**:boolean. Ta właściwość umożliwia włączenie znaku UTF-8 Byte Order Mark na początku tekstu wyjściowego (patrz [BOM](https://pl.wikipedia.org/wiki/BOM_(informatyka))) wymaganego przez niektóre edytory/przeglądarki, domyślnie żaden BOM nie jest używany na eksportowanym wyjściu.
312+
313+#### TfrCSVExportFilter
314+
315+inheritance: TfrExportFilter \<- TfrTextExportFilter \<- TfrCSVExportFilter\
316+znajduje się w: pliku components/lazreport/source/**lr_e_csv.pas** zawartym w pakiecie LazReport.
317+
318+Ten specjalny filtr eksportu tekstu generuje dane wyjściowe z wartościami oddzielonymi przecinkami (właściwie każdy znak może być użyty jako separator). Różni się on od swojego przodka tym, że nie próbuje tworzyć tekstowej reprezentacji układu z raportu graficznego. Zamiast tego dla każdego rekordu wyjściowego, próbuje odgadnąć kolejność pól z raportu źródłowego oraz tworzy listę pól, używając separatora zdefiniowanego przez użytkownika. Oprócz właściwości odziedziczonych po klasach przodków definiuje pewne właściwości, aby dostosować generowane dane wyjściowe.
319+
320+- **QuoteType**:TfrQuoteType. Ta właściwość kontroluje, czy wygenerowana wartość pola powinna być ujęta w określych znakach cudzysłowu, czy nie. Możliwe wartości to *qtNone*, *qtQuoteChar* i *qtAutoQuote*. W przypadku *qtNone* wartość pola nigdy nie jest ujmowana w cudzysłowia, *qtQuoteChar* spowoduje użycie znaku określonego przez właściwość **QuoteChar**, każda instancja **QuoteChar** już obecna jako wartości pola zostanie zduplikowana. *qtAutoQuote* najpierw spróbuj sprawdzić, czy jakiekolwiek wystąpienie **Separator** lub **QuoteChar** jest już obecne w wartości pola, jeśli tak, to zachowuje się ona jakby określono *qtQuoteChar*, w przeciwnym przypadku wartość pola nie jest umowana w cudzysłowia, podobnie jak w przypadku *qtNone*. Właściwość **QuoteType** jest domyślnie ustawiona na *qtQuoteChar*.
321+- **QuoteChar**:TUTF8Char. Ta właściwość przechowuje znak, który ma być użyty do ujęcia w nich wartości pola w przypadku, gdy **QuoteType** ma wartość *qtQuoteChar* lub został wydedukowany, jeśli ma wartość *qtAutoQuote*. Każde wystąpienie tego znaku wewnątrz wartości pola zostanie zduplikowane. Domyślnie **QuoteChar** jest ustawiony na znak „"” (U+0022 - cudzysłów amerykański).
322+- **Separator**:TUTF8Char. Jest to znak używany do oddzielania pól w każdym rekordzie, domyślnie jest ustawiony na znak „,” (U+002C - przecinek), ale można użyć dowolnego prawidłowego znaku UTF-8. Niektóre pliki CSV są w rzeczywistości plikami rozdzielanymi tabulatorami, aby to uzyskać, ustaw Separator:=#9 (U+0009 - poziomy tabulator);
323+
324+Eksporter CSV nie używa odziedziczonej wartości właściwości UsedFont, więc każdy zestaw wartości zostanie zignorowany. Przy domyślnych wartościach właściwości TfrCSVExportFilter utworzy pliki zgodne z programem Excel, jedynym zastrzeżeniem jest to, że program Excel nie rozpozna pliku zakodowanego w formacie UTF-8. Aby wymusić w programie Excel automatyczne rozpoznawanie kodowania, ustaw właściwość **UseBOM** na wartość True.
325+
326+#### TfrHTMExportFilter
327+
328+inheritance: TfrExportFilter \<- TfrTextExportFilter \<- TfrHTMExportFilter\
329+Znajduje się w: components/lazreport/source/**lr_e_htm.pas** w pakiecie LazReport.
330+
331+Ten specjalny filtr eksportu tekstu generuje prawidłowe dane wyjściowe „HTML 4.01 Transitional”. Obecnie definiuje tylko jedną dodatkową właściwość.
332+
333+- **UseCSS**:boolean. Ta właściwość kontroluje, czy generowane dane wyjściowe zawierają informacje CSS. Ta właściwość jest domyślnie ustawiona na True.
334+
335+### Język skryptowy
336+
337+W LazReport zawarty jest prosty język skryptowy (interpreter) podobny do Pascala.
338+
339+Kilka uwag:
340+
341+- interpreter wydaje się oczekiwać średników po każdym wierszu
342+- interpreter nie może obsłużyć zagnieżdżonych instrukcji if
343+
344+Przykład:
345+
346+``` pascal
347+ if [[PAY]>0] then begin
348+ if[[LATE_FEE]=1] then Text:=[MSGL2];
349+ else Text:= [MSGL1];
350+ end;
351+```
352+
353+Powyższy kod nie skompiluje się, ale ten tak:
354+
355+``` pascal
356+ if[[LATE_FEE]=1] then Text:=[MSGL2]
357+ else Text:= [MSGL1];
358+```
359+
360+Źródło: [wątek na forum](http://forum.lazarus.freepascal.org/index.php/topic,22902.0.html).
361+
362+### Przykłady
363+
364+Możesz znaleźć kilka przykładów w swojej instalacji Lazarusa w katalogu components\lazreport\samples.
365+
366+#### Running total
367+
368+Aby obliczyć sumę dla wartości każdej strony dodanej do sumy na poprzedniej stronie, wykonaj następujące kroki:
369+
370+- Upewnij się, że masz raport z głównym zestawem BandTypes połączonym ze zbiorem danych dataset
371+- Umieść tekst wewnątrz tego zestawu i kliknij dwukrotnie, aby otworzyć jego edytor.
372+- W edytorze zaznacz opcję skryptu w lewym górnym rogu.
373+- W oknie skryptu wklej następujący kod
374+
375+``` pascal
376+ IF [Line#] = 1 then RunTotal := [Dbf1."MTH_NO"]
377+ else RunTotal := RunTotal +[Dbf1."MTH_NO"];
378+```
379+
380+
381+oczywiście musisz zastąpić \[dbf1."MTH_NO"\] swoim polem, tym, które chcesz zsumować.
382+
383+- Kliknij OK, aby zapisać zmiany.
384+- Ponownie otwórz edytor, klikając dwukrotnie obiekt tekstowy
385+- Kliknij przycisk „Variable”.
386+- Wybierz kategorię zmiennych fr z listy rozwijanej.
387+- Kliknij dwukrotnie zmienną RunTotal, która ma zostać umieszczona w Memo.
388+- Kliknij OK, a następnie naciśnij Preview.
389+
390+Źródło: [Issue \#17198](https://bugs.freepascal.org/view.php?id=17198)
391+
392+### Poradnik
393+
394+Please see [[LazReport Tutorial/pl|Poradnik LazReport]].
395+
396+### Zobacz także
397+
398+- [Tworzenie i drukowanie raportu](http://www.pp4s.co.uk/main/tu-db-firebird-demo3.html)
399+
400+## Projektant raportów
401+
402+- Menu: Plik-\>Zapisz jako ...
403+ - Uwaga o szablonach:
404+ - Podczas zapisywania bieżącego raportu użytkownik może wybrać dowolny katalog w oknie dialogowym Zapisz jako ..., w przypadku szablonów (rozszerzenie .lrt) wybrany katalog jest ignorowany. Szablony są zawsze przechowywane w **Katalogu szablonów**. Wartość **Katalog szablonów** można ustawić, zmieniając zmienną globalną frTemplateDir (moduł lr_desgn.pas) lub ustawiając właściwość TemplateDir w komponencie TfrDesigner. Właściwość TemplateDir nadpisze zmienną globalną frTemplateDir, jeśli obie są używane. **Katalog szablonów** może być ścieżką bezwzględną lub względną do katalogu ze ścieżką programu, jeśli ten katalog nie istnieje, LazReport spróbuje go utworzyć przy pierwszym użyciu. Jeśli właściwość TemplateDir lub zmienna frTempateDir nie są ustawione, LazReport spróbuje zapisać szablony w katalogu programu.
405+ - Format szablonów binarnych (.frt) nie jest zalecany, ponieważ formaty binarne są trudne do zachowania zgodności z nowszymi (lub starszymi) wersjami LazReport. Jeśli to możliwe, użyj rozszerzenia pliku .lrt (format pliku XML).
406+
407+## Szybki start
408+
409+### Raportuj rekordy ze zbioru danych takich jak Dataset
410+
411+W tym przykładzie zaprojektujemy raport do drukowania rekordów z zestawu danych pochodzacych z kontrolek (TDbf, TSQLQuery, TZTable, TZQuery itp.). Najpierw zakłada się, że LazReport jest już zainstalowany, a komponent DataSet, nazwany tutaj „Dbf1”, jest już skonfigurowany i aktywny.
412+
413+1. Z zakładki LazReport wybierz składnik TfrReport i upuść go na formularzu projektu, będzie miał nazwę „frReport1”.
414+2. Upuść komponent TfrDbDataset, zostanie on nazwany „frDbDataset1”
415+3. Upuść TButton, będzie on nazywał się Button1, zmień jego nazwę na "btnShowReport"
416+4. Po wybraniu frDbDataset1 w Inspectorze Obiektów wybierz „Dbf1” dla właściwości „Dataset”
417+5. Teraz wybierz frReport1 i używając tej samej procedury połącz jego właściwość „Dataset” z „frDbDataset1”:
418+ <center>
419+
420+ <figure>
421+ <img src="lrformsetup.png" title="lrformsetup.png" />
422+ <figcaption>lrformsetup.png</figcaption>
423+ </figure>
424+
425+ </center>
426+6. Kliknij prawym przyciskiem myszy frReport1 i wybierz z menu opcję „Projekt raportu”, pojawi się projektant raportów LazReport.
427+7. Z okna Projektanta wybierz menu Tools-\>Tools-\>Insert DB Fields, pojawi się okno dialogowe Insert fields.
428+8. Na liście pól wybierz pola, które chcesz umieścić w raporcie
429+9. Zaznacz opcje „Include Headers” i „Include Bands”, wynik powinien wyglądać mniej więcej tak:
430+ <center>
431+
432+ <figure>
433+ <img src="lrinsertfieldsdialog.png" title="lrinsertfieldsdialog.png" />
434+ <figcaption>lrinsertfieldsdialog.png</figcaption>
435+ </figure>
436+
437+ </center>
438+10. Naciśnij przycisk „OK”, LazReport uporządkuje zestawy i pola w następujący sposób:
439+ <center>
440+
441+ <figure>
442+ <img src="lrreportwithfields.png" title="lrreportwithfields.png" />
443+ <figcaption>lrreportwithfields.png</figcaption>
444+ </figure>
445+
446+ </center>
447+11. Naciśnij przycisk podglądu ![](/wiki-images/b/bb/Lrprevieweye.png), następnie LazReport uporządkuje rzeczy i pokaże:
448+ <center>
449+
450+ <figure>
451+ <img src="lrpreviewreport.png" title="lrpreviewreport.png" />
452+ <figcaption>lrpreviewreport.png</figcaption>
453+ </figure>
454+
455+ </center>
456+12. Zapisz raport za pomocą Menu File-\>Save, wybierz ten sam katalog co bieżący projekt i nazwij go listing1.lrf
457+13. Zamknij projektanta raportów.
458+14. Podwójnie kliknij btnShowReport i wpisz następujący kod:
459+
460+``` pascal
461+ frReport1.LoadFromFile('listing1.lrf');
462+ frReport1.ShowReport;
463+```
464+
465+## Zgłaszanie błędów
466+
467+Proszę zgłaszać problemy za pomocą [lazarus/freepascal bugtrackera](http://www.freepascal.org/mantis/main_page.php), projekt: „Lazarus Packages”, kategoria „LazReport”.
468+
469+W przypadku poprawek prosimy o przesłanie raportu o błędzie i dołączenie do niego poprawki.
470+
471+---
472+*From the Free Pascal wiki, page "LazReport Documentation/pl", as it stood on 2022-02-05 after a change by Slawek, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history