fbpx
Spis treści

Jasper

Przygotowywanie raportów Jasper

Do utworzenia raportu należy użyć TIBCO Jaspersoft Studio w wersji 6.10. Mirror: TIB_js-studiocomm_6.10.0_windows_x86_64.exe

Tworzenie adaptera danych JSON

Jako źródło danych raport otrzymuje plik JSON wygenerowany w WMS, przykładowy plik wraz z raportem znajduje się w katalogu workera WMS: WorkflowWorkerAlpolWMSERPXL\Docs\JasperTemplates

Utwórz nowy projekt w Jaspersoft Studio

File → New → Project… → Jaspersoft Studio → JasperReports Project → Podaj nazwę projektu → Next

Następnie należy dodać źródło danych, w tym celu przejdź do zakładki Repository Explorer (1)

TIBCO Jaspersoft Studio

Jeśli zakładka nie jest widoczna można ją włączyć za pomocą

Window → Show View → Other… -> JasperReports → Repository Explorer → Open

Widoczne będą wszystkie aktualnie dostępne adaptery, w celu utworzenia nowego adaptera dla nowego pliku JSON należy prawym klawiszem myszy kliknąć w Data Adapters (2) i wybrać opcję Create Data Adapter

TIBCO Jaspersoft Studio – Data Adapter Wizard

Wybierz typ JSON File i zatwierdź przyciskiem Next

TIBCO Jaspersoft Studio – Data Adapter Wizard

Uzupełnij nadaj dowolną nazwę dla nowego adaptera (1) oraz wskaż ścieżkę do pliku JSON klikając przycisk File (2) upewnij się, że opcja Create data source using this expression jest zaznaczona, i zatwierdź przyciskiem Finish (3)

Przygotowywanie raportu Jasper

Utwórz nowy raport Jasper

File → New → Jasper Report → Blank A4 →

TIBCO Jaspersoft Studio – New Report Wizard

Wybierz z listy uprzednio utworzony projekt (1), nadaj nazwę raportowi (2) i przejdź do następnego kroku (3)

TIBCO Jaspersoft Studio – New Report Wizard

Wybierz z listy Data Adapter uprzednio utworzony adapter dla pliku JSON (1), po wybraniu źródła zostaną wyświetlone dostępne pola, wybierz klikając dwukrotnie pozycję objectData (2) i przejdź do następnego kroku (3)

TIBCO Jaspersoft Studio – New Report Wizard

Przenieś wymagane pola z kolumny Dataset Fields do Fields za pomocą oznaczonych przycisków, w następnym kroku możliwe jest wybranie pól do grupowania, jednak nie jest to wymagane, zatwierdź nowy raport za pomocą przycisku Finish

Dostosowywanie źródła danych

W celu poprawnego zaczytania raportu przez WMS musi on posiadać poprawnie skonfigurowane pola danych.

Dwuklikiem otwórz raport z listy

TIBCO Jaspersoft Studio

Na dole aplikacji przejdź do widoku projektowania

TIBCO Jaspersoft Studio

 

Otwórz okno dialogowe DataSet and Query editor dialog

TIBCO Jaspersoft Studio
TIBCO Jaspersoft Studio – Dataset and Query Dialog

Wyczyść pola w tabeli Fields (1) zaznaczając je i klikając przycisk Delete lub klawisz Del

Dwuklikiem wybierz wymagane pole z list (2), w oknie zostanie wypisana pełna ścieżka do wartości np. objectData.Name

Kliknij prawym klawiszem myszy na wcześniej zaznaczony element listy (2) i wybierz opcję Add node as field

TIBCO Jaspersoft Studio – Dataset and Query Dialog

Zauważ, że w tabeli pojawiło się nowe pole wraz z podaną ścieżką w Field expression, w przypadku zmiennej posiadającej zbiór danych, do elementów można odnosić się poprzez indeks np: objectData.BinaryData[0].FileContentUrl

  • Field Name – która będzie używana w każdym oknie dialogowym w Jaspersoft Studio
  • Class Type – typ klasy z języka Java. Najczęściej używana i ustawiania domyślnie wartość to java.lang.String, zaleca się jej używanie do wszystkich pól które chcemy „wydrukować do pdf” niezależnie czy dane pole będzie reprezentować liczbę całkowitą, czy zmienna przeciekową. Inne typy klas używane są do konkretnych kontrolek, czy ekspresji
  • Field Expression – dokładna ścieżka do której dane pole (z poziomu Jaspersoft Studio) odwołuje się do pola w json

Powtórz czynność dla wszystkich wymaganych przez raport pól

Uzupełnianie raportu

Wszystkie dodane pola znajdują się, w zakładce Outline → Fields

TIBCO Jaspersoft Studio

Jeśli zakładka nie jest widoczna można ją włączyć za pomocą

Window → Show View → Other… -> General → Outline → Open

Wybrane pola można przeciągać na raport, co automatycznie utworzy powiązanie z odpowiednim polem w pliku JSON

Pola można też tworzyć ręcznie za pomocą zakładki Palette z prawej strony okna programu, należy wtedy ręcznie przypisać pole do wartości, umożliwia to jednocześnie lepsze dostosowanie wartości pól

Dla przykładu pole TextField:

TIBCO Jaspersoft Studio

Przejdź do konfiguracji Text Field (1) w zakładce Properties, otwórz edytor ekspresji (2) i skonfiguruj swoje zapytanie, np:

$F{Name} + "(" + $F{Code} + ")"

spowoduje wypełnienie pola następującym tekstem dla przykładowego pliku JSON: Grabie ogrodnicze (GRABIE_OGR)

Utworzona ekspresja widoczna jest w polu tekstowym (3)

Zdjęcia

  • Jeżeli zdjęcie jest w postaci URL to wystarczy dodać ekspresję kontrolki do pola $F{objectData.BinaryData.FileContentURL}, typ java.lang.String
  • Jeżeli zdjęcie jest w base64 to musimy polączyć kod java z ekspresją do pola new java.io.ByteArrayInputStream(java.util.Base64.getDecoder().decode($F{organizationImageBase64})),typ java.lang.String

 

Tablica obiektów

Aby wyświetlić tablicę obiektów w postaci tabeli należy dla przykładowego pliku json:

{

    "objectData": {

        "DocumentNumber": "WZ/1243/07/2023",

            .

            .

            .

        },

        "FooterContent": "(Status 7)",

        "Items": [

            {

                "Lp": 1,

                "Code": "WIDLY",

                "Name": "Widły uniwersalne",

                "Ean": "978020137962",

                "Quantity": 1,

                "QuantityRealized": 1,

                "UnitCode": "szt"

            },

            {

                "Lp": 2,

                "Code": "GRABIE",

                "Name": "Grabie ogrodowe",

                "Ean": "978020137962",

                "Quantity": 2,

                "QuantityRealized": 1,

                "UnitCode": "szt"

            }

        ]

    }

}

Dodać do raportu element „Table”:

W kreatorze wybieramy kolejno: „Create a Table using new dataset”:

Wybieramy „Create new dataset…” i wpisujemy jego nazwę:

 

Zaznaczamy jeden z elemntów tablicy którą chcemy wyświetlić:

 

Wybieramy pola, któe będą używane w wierszach tabeli:

 

Wybieramy „Use JRDatasource expression” i wpisujemy wyrażenie (podmieniając ścieżkę do naszej tablicy):

((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource(„objectData.Items„)

Wybieramy kolumny, które będą wyświetlać się w tabeli:

 

Ustawiamy ewentualne formatowanie tabeli i wygląd:

 

Tabela jest gotowa. Klikając na tabelę możemy edytowąć jej układ, ukryć nagłowki, ustawić szerokość kolumn itp.

Sub-Report

Dodajemy nowy Subreport do raportu

Tworzymy nowy raport lub wybieramy istniejący

 

Wybieramy źródło danych, powinno być takie samo jak źródło danych raportu głównego

Zamykamy kreator, a następnie przechodzimy do edycji zbioru danych w nowo utworzonym raporcie

Dodaj wymagane pola do raportu, pamiętaj aby zmienić Field expression tak aby wskazywały bezpośrednio na nazwę pola

Jeśli subreport wymaga podania pól, które nie są zawarte w zbiorze danych (w przykładzie powyżej, w zbiorze Items) należy przejść do zakładki Source i na górze kodu nazwać wymagane parametry

Do pól dodatkowych odnosimy się poprzez $P{NAZWA_POLA}

Gdy subreport jest gotowy, należy go zapisać, a jego plik jrxml przekonwertować do Base64

Następnie należy skonfigurować raport główny:

W raporcie głównym przejdź do kontrolki Subreportu → Properties → Subreport

W polu Expression należy podać ciąg znaków Base64 zgodnie z przykładem:

  • net.sf.jasperreports.engine.JasperCompileManager.compileReport(new java.io.ByteArrayInputStream(java.util.Base64.getDecoder().decode(„BASE64„)))

Podmień BASE64 na swój ciąg znaków.

W tym samym oknie należy skonfigorwać źródło danych dla subreportu. Aby wybrać zbiór danych, należy w Data Source Expression podać ścieżkę do zbioru danych, w naszym przypadku zbiór Items – jako zbiór danych ustawiamy objectData.Items

  • ((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource(„objectData.Items„)

Następnie przejdź do zakładki Advanced → Subreport Properties → Edit Parameters

 

Dodaj wcześniej skonfigurowane w subraporcie pola

  • Name – odpowiada nazwie pola w subraporcie
  • Expression – odpowiada wartości jaką chcemy wysłać do subreportu

Polskie znaki w raporcie

Aby polskie znaki były widoczne na wydruku, należy na każdym polu, który będzie posiadał polskie znaki ustawić odpowiednie kodowanie.

W tym celu zaznacz element → Properties → Advanced → PDF → PDF Encoding

Zmień wartość pola na CP1250 (Central European)

Zapis raportu gotowego dla WMS

WMS wymaga raportu w postaci pliku *.jasper, Jaspersoft Studio pracuje z plikiem *.jrxml i należy go skompilować

w tym celu należy kliknąć przycisk Compile Report w prawym górnym rogu okna widoku projektowania

TIBCO Jaspersoft Studio

W katalogu z projektem zostanie utworzony plik *.jasper, który należy wczytać do WMS

Obsługa Jasper w WMS

Wydruki generowane są za pomocą zapytań FaaS i wymagają do poprawnego działania skonfigurowanego adresu URL oraz tokenu na AlpolWF.Configuration wpisy:

  • FaasAuthToken
  • FaasMainUrl

WMS rozpoznaje czy używać wydruków CrystalReport czy Jasper po nazwie wydruku, jeśli nazwa zawiera w sobie słowo jasper zostanie on użyty do wydruku

W Futuriti tworzymy zaawansowane technologicznie systemy IT oraz wdrażamy, rozwijamy i integrujemy systemy Comarch ERP.
Jako Złoty Partner Comarch zapewniamy naszym Klientom wysokiej jakości obsługę na wszystkich etapach współpracy.

Umów się na prezentację

Jesteś zainteresowany WMS Futuriti?
Wypełnij formularz – odezwiemy się do Ciebie i pokażemy, w jaki sposób zwiększysz efektywność swojego magazynu!

Czy aby na pewno mierzysz w magazynie wszystko, co powinieneś?

Wiedza jest kluczem do przetrwania oraz wyskalowania biznesu – zwłaszcza w obecnym, dynamicznie rozwijającym się środowisku. Im więcej aspektów mierzysz, tym więcej z nich możesz zoptymalizować.

W trosce o Twój magazyn, zespół Futuriti przygotował zestaw wskaźników efektywności, które pomogą Ci zoptymalizować pracę magazynu, usprawnić pracę i zredukować koszty.

Pobierz checklistę ze wskaźnikami i sprawdź co możesz usprawnić w magazynie!

Zgoda na przetwarzanie danych osobowych Podając swój adres mailowy zgadzasz się na przetwarzanie danych osobowych przez Futuriti w celu zapisania do listy mailingowej i wysyłania newslettera. Newsletter będzie zawierał informacje eksperckie na temat zarządzania magazynem wysokiego składu, branży e-commerce a także o produktach, usługach, promocjach lub nowościach Futuriti. Zgodę można w każdej chwili cofnąć.
Obiecujemy nie spamować ! Będziesz otrzymywać tylko wartościowe treści.

Prowadzisz sprzedaż e-commerce? Możesz sprzedawać więcej ale Twój magazyn nie wyrabia? Skontaktuj się z nami! Pomożemy