Kod źródłowy Wiki Základní výstupy a editace šablon
Ostatnio modyfikowane 2025/11/21 09:23 przez Jan Slezák
Pokaż ostatnich autorów
| author | version | line-number | content |
|---|---|---|---|
| 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 |