Ostatnio modyfikowane 2025/11/21 09:23 przez Jan Slezák

Ukryj ostatnich autorów
Martin Mahr 2.1 1 **Ilustracja 1: **Edytowanie szablonu wyjściowego
Jan Šimeček 1.1 2
3 [[image:1722591757539-463.png]]
4
Martin Mahr 2.1 5 = **Edytowanie szablonu wyjściowego** =
Jan Šimeček 1.1 6
Martin Mahr 2.1 7 Klucz: nazwa szablonu, dla którego należy jeszcze utworzyć tłumaczenie, albo za pomocą przycisku obok, albo tworząc tłumaczenie w System -> Tłumaczenia -> Utwórz
Jan Šimeček 1.1 8
Martin Mahr 2.1 9 Kolejność: numer określający kolejność zestawu na liście w kategorii wyjściowej
Jan Šimeček 1.1 10
Martin Mahr 2.1 11 Kategoria wyjściowa: określa miejsce, w którym ma pojawić się zestaw, np.: Item_basic_output to okno Podstawowy przegląd pakietów
Jan Šimeček 1.1 12
Martin Mahr 2.1 13 Poziom wyjścia: dla podstawowych szablonów zawsze wybiera się BASIC
Jan Šimeček 1.1 14
Martin Mahr 2.1 15 Obsługiwane typy wyjścia: (opcjonalnie) wybierz, jeśli chcesz ograniczyć raport do określonego formatu wyjścia, np. tylko dla programu Excel lub PDF
Jan Šimeček 1.1 16
Martin Mahr 2.1 17 Parametry: patrz poniżej w akapicie Parametr 1
Jan Šimeček 1.1 18
19
Martin Mahr 2.1 20 Obowiązuje dla: ustawienia grupy użytkowników, którzy będą widzieć i będą mogli używać szablonu
Jan Šimeček 1.1 21
Martin Mahr 2.1 22 Wczytaj szablon: służy do wczytania pliku/szablonu z IReport w formacie .jrxml
Jan Šimeček 1.1 23
Martin Mahr 2.1 24 Pobierz szablon: umożliwia pobranie pliku/szablonu, który jest już zapisany w Tritiu dla tego zestawu
Jan Šimeček 1.1 25
Martin Mahr 2.1 26 Edytuj: zapisuje zmiany wprowadzone w ustawieniach szablonu wyjściowego
Jan Šimeček 1.1 27
Martin Mahr 2.1 28 = **Sortowanie** =
Jan Šimeček 1.1 29
Martin Mahr 2.1 30 Sortowanie jest ważne nie tylko dla wyglądu wizualnego wyniku, ale także w przypadku stosowania grupowania w szablonie. Gdyby dane w szablonie były grupowane np. według lokalizacji, a dane wejściowe nie były posortowane według lokalizacji, w wyniku pojawiłoby się więcej identycznych grup/lokalizacji, co jest nieprawidłowe.
Jan Šimeček 1.1 31
Martin Mahr 2.1 32 Podstawowe wyniki mają dwa sposoby sortowania:
Jan Šimeček 1.1 33
Martin Mahr 2.1 34 1. sortowanie według filtra (wiersze w wygenerowanym wyniku będą posortowane/zgrupowane tak, jak były na wejściu)
35 1. sortowanie według parametru 1 (parametr 1 pozwala ustawić, w jaki sposób dane będą zawsze sortowane/grupowane niezależnie od sortowania danych wejściowych)
36 1. sortowanie według zmiennej w iReport
Jan Šimeček 1.1 37
38 == **Parametr 1** ==
39
Martin Mahr 2.1 40 Na rysunku 1 widać, że ustawienia szablonu dla wyjścia umożliwiają wypełnienie parametru 1, pozostałe parametry nie są obecnie wykorzystywane dla podstawowych wyjść. W tym miejscu można wypełnić maksymalnie dwie zmienne, według których dane mają być automatycznie sortowane dla szablonu. Nie ma więc potrzeby, aby użytkownik sortował dane przed wygenerowaniem wyjścia w celu ich połączenia.
Jan Šimeček 1.1 41
Martin Mahr 2.1 42 Na rysunku 1 widać, że zmienne są oddzielone **przecinkami**, można użyć maksymalnie **dwóch **zmiennych, przy czym dane będą sortowane najpierw według pierwszej zmiennej, a następnie według drugiej. Na przykład: jeśli zostaną wypełnione pola location, work.titleSearch, wiersze w wyjściu będą najpierw posortowane według lokalizacji, a następnie według nazwy.
Jan Šimeček 1.1 43
Martin Mahr 2.1 44 Zmienne
Jan Šimeček 1.1 45
Martin Mahr 2.1 46 Nazwy zmiennych odpowiadają nazwom zmiennych w Tritiu, są to więc zazwyczaj angielskie odpowiedniki wartości, które przechowują, np.: lokalizacja – location, grupa tematyczna – thematicGroup. Jeśli wartość odnosi się do dzieła, a nie do zbioru, należy dodać **work**., np.: nazwa dzieła – work.titleSearch.
Jan Šimeček 1.1 47
Martin Mahr 2.1 48 Wykaz najczęściej używanych zmiennych:
Jan Šimeček 1.1 49
Martin Mahr 2.1 50 * location – lokalizacja zbioru
51 * thematicGroup – grupa tematyczna zbioru
52 * acquisitionType – sposób nabycia zbioru
53 * work.titleSearch – tytuł dzieła
54 * work.authorSearch – autor dzieła
Jan Šimeček 1.1 55
56 = Parametr 2 =
57
Martin Mahr 2.1 58 * Wyniki mogą być parametryzowane, co oznacza, że czytelnik może ograniczyć dane, które mają być ładowane.
59 * Na przykład ładowanie wypożyczeń konkretnego czytelnika w danym okresie.
Jan Šimeček 1.1 60
Martin Mahr 2.1 61 * Parametry te należy zdefiniować w szablonie
62 * Dodawanie parametru w iReport:
63 ** Kliknij prawym przyciskiem myszy Parameters -> Add Parameter
64 ** Nadaj parametrowi odpowiednią nazwę i ustaw jego typ danych
Jan Šimeček 1.1 65
Martin Mahr 2.1 66 == Definicja w szablonie ==
Jan Šimeček 1.1 67
Martin Mahr 2.1 68 * Parametr można następnie używać w szablonie, wpisując $P{nazwa_parametru}
69 * Parametr można używać bezpośrednio w SQL do ładowania danych.
70 (((
71 **Parametr v SQL**
Jan Šimeček 1.1 72
73 |(((
74 <parameter name="l1" class="java.lang.Long"/>
75
76 <queryString language="SQL">
77
78 <![CDATA[
79
80 SELECT [name] AS work_type_name
81
82 FROM [work_type]
83
84 WHERE [id] = $P{l1}
85
86 ]]>
87
88 </queryString>
89
90 <field name="work_type_name" class="java.lang.String"/>
91 )))
92
93
94 )))
95 * (((
Martin Mahr 2.1 96 W ten sposób można jednak wstawić parametr tylko bez żadnych dodatkowych modyfikacji.
97 )))
98 * (((
99 Działa dla ciągów znaków, liczb.
100 )))
101 * (((
102 Nie działa dla daty i zaawansowanych struktur Tritia.
103 )))
104 * (((
105 Jeśli parametr wymaga jakiejś obróbki, nie jest to możliwe w części z SQL (ograniczenie JasperReports).
106 )))
107 * (((
108 Konieczne jest utworzenie nowego parametru, ustawienie dla niego żądanej wartości, a dopiero potem użycie go w szablonie.
109 )))
110 * (((
111 Do tak utworzonego parametru należy uzyskać dostęp poprzez $P!{nazwa_parametru} (dodatkowy wykrzyknik).
112 )))
113 * (((
114 Do utworzenia wartości parametru można użyć składania wartości, tak jak w Javie.
115 \\Przykład:
116 \\**Parametry w SQL — zaawansowane**
117 )))
118 * (((
Jan Šimeček 1.1 119 |(((
120 <parameter name="d1" class="java.util.Date"/>
121
122 <parameter name="d1_sql_condition" class="java.lang.String">
123
124 <defaultValueExpression><![CDATA["[work_type].[date_created] > '" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format($P{d1}) + "'"]]></defaultValueExpression>
125
126 </parameter>
127
128 <queryString language="SQL">
129
130 <![CDATA[
131
132 SELECT [name] AS work_type_name
133
134 FROM [work_type]
135
136 WHERE $P!{d1_sql_condition}
137
138 ]]>
139
140 </queryString>
141
142 <field name="work_type_name" class="java.lang.String"/>
143 )))
144
145
146 )))
Martin Mahr 2.1 147 * Dla daty 1.2.2015 10:00:00 w parametrze d1_sql_condition zostanie ustawiona wartość „[work_type].[date_created] > »2015-02-01 10:00:00« ”, co odpowiada zapisowi SQL
Jan Šimeček 1.1 148
Martin Mahr 2.1 149 == Parametry obowiązkowe i nieobowiązkowe ==
Jan Šimeček 1.1 150
Martin Mahr 2.1 151 * (((
152 Jeśli parametr jest obowiązkowy, nie ma potrzeby go obsługiwać.
153 )))
154 * (((
155 Parametr nieobowiązkowy może pojawić się w szablonie jako NULL – należy zapewnić utworzenie prawidłowego kodu SQL.
156 )))
157 * (((
158 W tym celu stosuje się wstępne przetwarzanie parametru, patrz wyżej.
159 )))
160 * (((
161 Wykorzystanie operatora trójargumentowego
162 )))
163 ** (((
164 Jeśli parametr różni się od null, użyj wartości A, w przeciwnym razie użyj wartości B.
165 )))
166 * (((
167 (((
168 Warunek 1=1 – nie ogranicza wyników.
Jan Šimeček 1.1 169
Martin Mahr 2.1 170 )))
Jan Šimeček 1.1 171
Martin Mahr 2.1 172 (((
173 Przykład:
174 \\**Parametr nieobowiązkowy**
Jan Šimeček 1.1 175
Martin Mahr 2.1 176 (((
Jan Šimeček 1.1 177 |(((
178 <parametername="d1"class="java.util.Date"/>
179
180 <parametername="d1_sql_condition"class="java.lang.String">
181
182 <defaultValueExpression><![CDATA[$P{d1} == null ? "1=1" : ("[work].[date_created] > '" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format($P{d1}) + "'"]]></defaultValueExpression>
183
184 </parameter>
185
186 <queryStringlanguage="SQL">
187
188 <![CDATA[
189
190 SELECT [name] AS work_type_name
191
192 FROM [work_type]
193
194 WHERE $P!{d1_sql_condition}
195
196 ]]>
197
198 </queryString>
199
200 <fieldname="work_type_name"class="java.lang.String"/>
201 )))
202
203
204 )))
Martin Mahr 2.1 205 )))
206 )))
207 * Jeśli parametr ma wartość NULL, stosuje się warunek 1=1 (pobierane są wszystkie rekordy). W przeciwnym razie stosuje się standardowy warunek SQL dla podanej wartości.
Jan Šimeček 1.1 208
Martin Mahr 2.1 209 WSKAZÓWKA: Przed modyfikacją pobranego szablonu zalecam zapisanie oryginalnego/działającego szablonu. Może się zdarzyć, że szablon zostanie nieodwracalnie uszkodzony i łatwiej będzie zacząć od nowa.
Jan Šimeček 1.1 210
211 Šimeček