Last modified by Martin Mahr on 2025/02/11 10:27

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 <parameter name="l1" class="java.lang.Long"/>
76
77 <queryString language="SQL">
78
79 <![CDATA[
80
81 SELECT [name] AS work_type_name
82
83 FROM [work_type]
84
85 WHERE [id] = $P{l1}
86
87 ]]>
88
89 </queryString>
90
91 <field name="work_type_name" class="java.lang.String"/>
92 )))
93
94
95 )))
96 * Tímto způsobem je ovšem možno vložit parametr pouze bez nějakých dalších úprav
97 ** Funguje pro řetězce, čísla
98 ** Nefunguje pro datum a pokročilé struktury Tritia
99 * Pokud je parametr potřeba nějakým způsobem zpracovat, tak toto není možné v části s SQL (omezení JasperReports).
100 * Je nutné si vytvořit nový parametr, nastavit mu požadovanou hodnotu a teprve pak ho použít v šabloně.
101 * K takto vytvořenému parametru je nutno přistupovat přes $P!{název_parametru} (vykřičník navíc).
102 * Pro vytvoření hodnoty parametru se dá použít skládání hodnot jako v Javě.
103 * (((
104 Příklad:
105
106 **Parametry v SQL - pokročilé**
107
108 |(((
109 <parameter name="d1" class="java.util.Date"/>
110
111 <parameter name="d1_sql_condition" class="java.lang.String">
112
113 <defaultValueExpression><![CDATA["[work_type].[date_created] > '" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format($P{d1}) + "'"]]></defaultValueExpression>
114
115 </parameter>
116
117 <queryString language="SQL">
118
119 <![CDATA[
120
121 SELECT [name] AS work_type_name
122
123 FROM [work_type]
124
125 WHERE $P!{d1_sql_condition}
126
127 ]]>
128
129 </queryString>
130
131 <field name="work_type_name" class="java.lang.String"/>
132 )))
133
134
135 )))
136 * 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
137
138 == Povinné a nepovinné parametry ==
139
140 * Pokud je parametr povinný, není potřeba ho ošetřovat.
141 * Nepovinný parametr může do šablony přijít jako NULL - je potřeba zajistit vytvoření validního SQL.
142 * K tomu se používá předzpracování parametru, viz výše.
143 * Využití ternárního operátoru
144 ** Když je parametr různý od null, použij hodnotu A, jinak hodnotu B
145 * Podmínka 1=1 - neomezuje výsledky.
146
147 * (((
148 Příklad:
149
150 **Nepovinný parametr**
151
152 |(((
153 <parametername="d1"class="java.util.Date"/>
154
155 <parametername="d1_sql_condition"class="java.lang.String">
156
157 <defaultValueExpression><![CDATA[$P{d1} == null ? "1=1" : ("[work].[date_created] > '" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format($P{d1}) + "'"]]></defaultValueExpression>
158
159 </parameter>
160
161 <queryStringlanguage="SQL">
162
163 <![CDATA[
164
165 SELECT [name] AS work_type_name
166
167 FROM [work_type]
168
169 WHERE $P!{d1_sql_condition}
170
171 ]]>
172
173 </queryString>
174
175 <fieldname="work_type_name"class="java.lang.String"/>
176 )))
177
178
179 )))
180 * 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.
181
182 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.
183
184 Šimeček