Version 1.1 by Jan Šimeček on 2024/08/02 11:42

Show last authors
1 **Obrázek 1:** Editace šablony výstupu
2
3 [[image:1722591757539-463.png]]
4
5 = **Editace šablony výstupu** =
6
7 Klíč: název šablony pro který je potřeba ještě vytvořit překlad buď tlačítkem vedle nebo vytvořením překladu v Systém -> Překlady -> Vytvořit
8
9 Pořadí: číslo, které určuje pořadí sestavy v seznamu v kategorii výstupu
10
11 Kategorie výstupu: určuje místo, kde se má sestava objevit, např.: Item_basic_output je okno Základní přehled svazků
12
13 Úroveň výstupu: pro základní šablony se vždy vybere BASIC
14
15 Podporované typy výstupu: (nepovinné) vyberete pokud je potřeba omezit sestavu na určitý formát výstupu, např.: pouze pro excel či pdf
16
17 Parametry: viz níže v odstavci Parametr 1
18
19
20 Platné pro: nastavení skupiny uživatelů, kteří uvidí a budou moci použít šablonu
21
22 Nahrát šablonu: slouží pro nahrání souboru/šablony z IReport ve formátu .jrxml
23
24 Stáhnout šablonu: umožňuje stáhnutí souboru/šablony, která je již v Tritiu uložena pro tuto sestavu
25
26 Upravit: uloží změny provedené v nastavení šablony výstupu
27
28 = **Řazení** =
29
30 Řazení je důležité nejen pro vizuální vzhled výstupu, ale také pokud je v šabloně použito seskupování. Pokud by se v šabloně data seskupovala např.: podle lokace, a data na vstupu by nebyla seřazena podle lokace, tak by na výsledném výstupu vzniklo více stejných skupin/lokací - což je špatně.
31
32 Základní výstupy mají dva způsoby řazení:
33
34 1. řazení podle filtru (řádky budou ve vygenerovaném výstupu seřazeny/seskupeny, tak jak byly na vstupu)
35 1. řazení podle Parametr 1 (Parametr 1 umožňuje nastavit, jak budou data vždy seřazena/seskupena nezávisle na vstupním seřazení dat)
36 1. řazení podle proměnné v iReport
37
38 == **Parametr 1** ==
39
40 Na obrázku 1 je vidět, že nastavení šablony pro výstup umožňuje vyplnění Parametru 1, ostatní parametry nejsou momentálně pro základní výstupy využity. Zde je možné vyplnit až dvě proměnné podle, kterých mají být data automaticky seřazena pro šablonu. Není tedy potřeba, aby uživatel řadil, kvůli seskopování dat ve výstupu, před generováním výstupu.
41
42 Na obrázku 1 je vidět, že proměnné se oddělují **čárkou**, je možné použít až **dvě** proměnné, kdy se data budou řadit nejdříve podle první proměnné a sekundárně se doseřadí podle druhé. Např.: pokud bude vyplněno location, work.titleSearch, tak budou řádky ve výstupu nejdříve seřazeny podle lokace a následně podle názvu.
43
44 Proměnné
45
46 Názvy proměnných odpovídají názvům proměnných v Tritiu, jsou to tedy většinou anglické ekvivalenty pro hodnoty, které uchovávají, např.: lokace - location, tematická skupina - thematicGroup. Pokud se hodnota váže k dílu, né tedy k svazku - musí se přidat **work.**, např.: název díla - work.titleSearch.
47
48 Výčet nejčastěji používaných proměnných:
49
50 * location - lokace svazku
51 * thematicGroup - tematická skupina svazku
52 * acquisitionType - způsob nabytí svazku
53 * work.titleSearch - název díla
54 * work.authorSearch - autor díla
55
56 = Parametr 2 =
57
58 * Výstupy mohou být parametrizované, tzn. čtenář může omezit data, která se mají načítat.
59 * Např. načtení výpůjček konkrétního čtenáře za časové období.
60
61 * Tyto parametry je nutné v šabloně definovat
62 * Přidání parametru v iReport:
63 ** Pravým na Parameters -> Add Parameter
64 ** Vhodně parametr pojmenovat a nastavit mu datový typ
65
66 == Definice v šabloně ==
67
68 * Parametr je poté možno používat v šabloně pomocí zápisu $P{název_parametru}
69 * (((
70 Je možno použít parametr přímo v SQL pro načítání
71
72 **Parametr v SQL
73 **
74
75 |(((
76 <parameter name="l1" class="java.lang.Long"/>
77
78 <queryString language="SQL">
79
80 <![CDATA[
81
82 SELECT [name] AS work_type_name
83
84 FROM [work_type]
85
86 WHERE [id] = $P{l1}
87
88 ]]>
89
90 </queryString>
91
92 <field name="work_type_name" class="java.lang.String"/>
93 )))
94
95
96 )))
97 * Tímto způsobem je ovšem možno vložit parametr pouze bez nějakých dalších úprav
98 ** Funguje pro řetězce, čísla
99 ** Nefunguje pro datum a pokročilé struktury Tritia
100 * Pokud je parametr potřeba nějakým způsobem zpracovat, tak toto není možné v části s SQL (omezení JasperReports).
101 * Je nutné si vytvořit nový parametr, nastavit mu požadovanou hodnotu a teprve pak ho použít v šabloně.
102 * K takto vytvořenému parametru je nutno přistupovat přes $P!{název_parametru} (vykřičník navíc).
103 * Pro vytvoření hodnoty parametru se dá použít skládání hodnot jako v Javě.
104 * (((
105 Příklad:
106
107 **Parametry v SQL - pokročilé
108 **
109
110 |(((
111 <parameter name="d1" class="java.util.Date"/>
112
113 <parameter name="d1_sql_condition" class="java.lang.String">
114
115 <defaultValueExpression><![CDATA["[work_type].[date_created] > '" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format($P{d1}) + "'"]]></defaultValueExpression>
116
117 </parameter>
118
119 <queryString language="SQL">
120
121 <![CDATA[
122
123 SELECT [name] AS work_type_name
124
125 FROM [work_type]
126
127 WHERE $P!{d1_sql_condition}
128
129 ]]>
130
131 </queryString>
132
133 <field name="work_type_name" class="java.lang.String"/>
134 )))
135
136
137 )))
138 * Pro datum 1.2.2015 10:00:00 bude v parametru d1_sql_condition nastavena hodnota "[work_type].[date_created] > '2015-02-01 10:00:00' ", což odpovídá SQL zápisu
139
140 == Povinné a nepovinné parametry ==
141
142 * Pokud je parametr povinný, není potřeba ho ošetřovat.
143 * Nepovinný parametr může do šablony přijít jako NULL - je potřeba zajistit vytvoření validního SQL.
144 * K tomu se používá předzpracování parametru, viz výše.
145 * Využití ternárního operátoru
146 ** Když je parametr různý od null, použij hodnotu A, jinak hodnotu B
147 * Podmínka 1=1 - neomezuje výsledky.
148
149 * (((
150 Příklad:
151
152 **Nepovinný parametr
153 **
154
155 |(((
156 <parametername="d1"class="java.util.Date"/>
157
158 <parametername="d1_sql_condition"class="java.lang.String">
159
160 <defaultValueExpression><![CDATA[$P{d1} == null ? "1=1" : ("[work].[date_created] > '" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format($P{d1}) + "'"]]></defaultValueExpression>
161
162 </parameter>
163
164 <queryStringlanguage="SQL">
165
166 <![CDATA[
167
168 SELECT [name] AS work_type_name
169
170 FROM [work_type]
171
172 WHERE $P!{d1_sql_condition}
173
174 ]]>
175
176 </queryString>
177
178 <fieldname="work_type_name"class="java.lang.String"/>
179 )))
180
181
182 )))
183 * Pokud je parametr NULL, použije se podmínka 1=1 (načtou se všechny záznamy). Jinak použije standardní SQL podmínku pro zadanou hodnotu.
184
185
186 TIP: Před upravením stažené šablony doporučuji uložit původní/funkční šablonu. Může se stát, že šablonu neopravitelně poškodíte a bude pro Vás snažší začít znovu.
187
188 Šimeček