Podstawowe wyniki i edycja szablonów

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

Ilustracja 1: Edytowanie szablonu wyjściowego

1722591757539-463.png

Edytowanie szablonu wyjściowego

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

Kolejność: numer określający kolejność zestawu na liście w kategorii wyjściowej

Kategoria wyjściowa: określa miejsce, w którym ma pojawić się zestaw, np.: Item_basic_output to okno Podstawowy przegląd pakietów

Poziom wyjścia: dla podstawowych szablonów zawsze wybiera się BASIC

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

Parametry: patrz poniżej w akapicie Parametr 1

Obowiązuje dla: ustawienia grupy użytkowników, którzy będą widzieć i będą mogli używać szablonu

Wczytaj szablon: służy do wczytania pliku/szablonu z IReport w formacie .jrxml

Pobierz szablon: umożliwia pobranie pliku/szablonu, który jest już zapisany w Tritiu dla tego zestawu

Edytuj: zapisuje zmiany wprowadzone w ustawieniach szablonu wyjściowego

Sortowanie

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.

Podstawowe wyniki mają dwa sposoby sortowania:

  1. sortowanie według filtra (wiersze w wygenerowanym wyniku będą posortowane/zgrupowane tak, jak były na wejściu)
  2. 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)
  3. sortowanie według zmiennej w iReport

Parametr 1

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.

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.

Zmienne

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.

Wykaz najczęściej używanych zmiennych:

  • location – lokalizacja zbioru
  • thematicGroup – grupa tematyczna zbioru
  • acquisitionType – sposób nabycia zbioru
  • work.titleSearch – tytuł dzieła
  • work.authorSearch – autor dzieła

Parametr 2

  • Wyniki mogą być parametryzowane, co oznacza, że czytelnik może ograniczyć dane, które mają być ładowane.
  • Na przykład ładowanie wypożyczeń konkretnego czytelnika w danym okresie.
     
  • Parametry te należy zdefiniować w szablonie
  • Dodawanie parametru w iReport:
    • Kliknij prawym przyciskiem myszy Parameters -> Add Parameter
    • Nadaj parametrowi odpowiednią nazwę i ustaw jego typ danych

Definicja w szablonie

  • Parametr można następnie używać w szablonie, wpisując $P{nazwa_parametru}
  • Parametr można używać bezpośrednio w SQL do ładowania danych.

    Parametr v SQL

    <parameter name="l1" class="java.lang.Long"/>

    <queryString language="SQL">

        <![CDATA[

            SELECT [name] AS work_type_name

            FROM [work_type]

            WHERE [id] = $P{l1}

        ]]>

    </queryString>

    <field name="work_type_name" class="java.lang.String"/>

     

  • W ten sposób można jednak wstawić parametr tylko bez żadnych dodatkowych modyfikacji.

  • Działa dla ciągów znaków, liczb.

  • Nie działa dla daty i zaawansowanych struktur Tritia.

  • Jeśli parametr wymaga jakiejś obróbki, nie jest to możliwe w części z SQL (ograniczenie JasperReports).

  • Konieczne jest utworzenie nowego parametru, ustawienie dla niego żądanej wartości, a dopiero potem użycie go w szablonie.

  • Do tak utworzonego parametru należy uzyskać dostęp poprzez $P!{nazwa_parametru} (dodatkowy wykrzyknik).

  • Do utworzenia wartości parametru można użyć składania wartości, tak jak w Javie.

    Przykład:

    Parametry w SQL — zaawansowane

  • <parameter name="d1" class="java.util.Date"/>

    <parameter name="d1_sql_condition" class="java.lang.String">

        <defaultValueExpression><![CDATA["[work_type].[date_created] > '" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format($P{d1}) + "'"]]></defaultValueExpression>

    </parameter>

    <queryString language="SQL">

        <![CDATA[

            SELECT [name] AS work_type_name

            FROM [work_type]

            WHERE $P!{d1_sql_condition}

        ]]>

    </queryString>

    <field name="work_type_name" class="java.lang.String"/>

     

  • 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

Parametry obowiązkowe i nieobowiązkowe

  • Jeśli parametr jest obowiązkowy, nie ma potrzeby go obsługiwać.

  • Parametr nieobowiązkowy może pojawić się w szablonie jako NULL – należy zapewnić utworzenie prawidłowego kodu SQL.

  • W tym celu stosuje się wstępne przetwarzanie parametru, patrz wyżej.

  • Wykorzystanie operatora trójargumentowego

    • Jeśli parametr różni się od null, użyj wartości A, w przeciwnym razie użyj wartości B.

  • Warunek 1=1 – nie ogranicza wyników.
     

    Przykład:

    Parametr nieobowiązkowy

    <parametername="d1"class="java.util.Date"/>

    <parametername="d1_sql_condition"class="java.lang.String">

        <defaultValueExpression><![CDATA[$P{d1} == null ? "1=1" : ("[work].[date_created] > '" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format($P{d1}) + "'"]]></defaultValueExpression>

    </parameter>

    <queryStringlanguage="SQL">

        <![CDATA[

            SELECT [name] AS work_type_name

            FROM [work_type]

            WHERE $P!{d1_sql_condition}

        ]]>

    </queryString>

    <fieldname="work_type_name"class="java.lang.String"/>

     

  • 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.

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.

Šimeček