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

Pokaż ostatnich autorów
1 **Ilustracja 1: **Edytowanie szablonu wyjściowego
2
3 [[image:1722591757539-463.png]]
4
5 = **Edytowanie szablonu wyjściowego** =
6
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
8
9 Kolejność: numer określający kolejność zestawu na liście w kategorii wyjściowej
10
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
12
13 Poziom wyjścia: dla podstawowych szablonów zawsze wybiera się BASIC
14
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
16
17 Parametry: patrz poniżej w akapicie Parametr 1
18
19
20 Obowiązuje dla: ustawienia grupy użytkowników, którzy będą widzieć i będą mogli używać szablonu
21
22 Wczytaj szablon: służy do wczytania pliku/szablonu z IReport w formacie .jrxml
23
24 Pobierz szablon: umożliwia pobranie pliku/szablonu, który jest już zapisany w Tritiu dla tego zestawu
25
26 Edytuj: zapisuje zmiany wprowadzone w ustawieniach szablonu wyjściowego
27
28 = **Sortowanie** =
29
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.
31
32 Podstawowe wyniki mają dwa sposoby sortowania:
33
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
37
38 == **Parametr 1** ==
39
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.
41
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.
43
44 Zmienne
45
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.
47
48 Wykaz najczęściej używanych zmiennych:
49
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
55
56 = Parametr 2 =
57
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.
60
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
65
66 == Definicja w szablonie ==
67
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**
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 * (((
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 * (((
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 )))
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
148
149 == Parametry obowiązkowe i nieobowiązkowe ==
150
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.
169
170 )))
171
172 (((
173 Przykład:
174 \\**Parametr nieobowiązkowy**
175
176 (((
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 )))
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.
208
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.
210
211 Šimeček