IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

JasperReports - nástroj pre generovanie dynamických reportov.

Stručne o JasperReports

JasperReports je nástroj (knižnica), ktorý vie generovať dokumenty vo rôznych formátoch (PDF, DOCX, ODT, HTML, XML, CSV, XLS, RTF, TXT). K dnešnému dňu je vo verzii 6.2.2. Sťahovať môžete z oficiálnych stránok. Dizajn, dátové pripojenie, práca s dátami pre dokument sú definované v značkovacom jazyku XML. XML súbor, s definíciou dokumentu, má koncovku jrxml. Ten je nutné skompilovať, potom vznikne súbor s koncovkou jasper, s ktorým už je možné pracovať pomocou kódu našej aplikácie.

Výroba šablóny pre dokument

Pre návrh reportu je možné použiť bezplatný editor iReport Designer, ktorý je k dispozícii vo verzii 5.6.0. V budúcich článkoch sa pozrieme aj na následníka - Jaspersoft Studio. Pre začiatok je ale jednoduchšie začať s iReport.

Veľká výhoda je vkladanie tzv. Subreportov. Ak máme dokumenty, kde sa určitej časti opakujú, možno vytvoriť samostatnú šablónu také časti, a tú potom aj opakovane vložiť do šablóny inej. Výsledný dokument je potom "poskladaný" z rôznych šablón dokumentov.

Šablóna má niekoľko oddielov, kde si môžeme nadefinovať vzhľad dokumentu, hlavičku, pätičku, pätičku iba pre poslednú stranu, telo dokumentu (vie aj stĺpcový design) atď. Základným stavebným kameňom je QUERY do databázy, to nám automaticky vygeneruje stĺpce, ktoré dotaz vracia is ich dátovým typom (možno pretypovať). Tie sú uložené v kolekcii FIELDS. Nad týmito dátami, definovať operácie (SUM, MAX, MIN, atď.), Vykonávať ich zoskupovanie, podmienené zobrazovanie, atď. Proste v podstate som za rok používanie nenarazil na prípad, kedy by sa niečo nedalo zobraziť tak, ako zákazník potreboval :)

Každá šablóna ďalej obsahuje kolekciu PARAMETERS, niektoré sú implementované trvalo, ďalší si môžeme pridať vlastné, a tie použiť ako vstupné dáta a cez ne potom ovládať generovanie reportu externou aplikáciou. Parametre môžeme plniť aj pre vnorené subreportov priamo z kolekcie fields, alebo z kódu. Alebo si do nich ukladať dáta, ktoré sú zhodné pre všetky časti dokumentu (napríklad nadpis do hlavičky).

Pomocou iReport nadesignujete váš dokument, pripojíte datasource a môžete testovať výstup pomocou zabudovaných prehliadačov konkrétneho požadovaného formátu výstupu. Kompilácia prebehne automaticky pred zobrazením výsledku.

Dokumenty majú pre ľahšiu prácu predpripravené ovládacie prvky, pomocou ktorých designom jednotlivé časti dokumentu. Možno použiť napr .: statický text, textové pole, obrázok, graf, tabuľka, html, frame, čiarový kód a ďalšie a ďalšie.

Na čo si dať pozor!

V prípade, že budeme ako výstupný formát používať PDF, je potrebné definovať pri každom ovládacieho prvku (statický text, textové polia atď.) Znakovú sadu. Štandardne je nastavená na 1252, preto sa v PDF nekorektne zobrazí slovenské znaky. Musíme teda nastaviť znakovú sadu 1250.

Čo budeme potrebovať pre tlač zostavy z našej aplikácie?

Najprv si musíme stiahnuť knižnice JasperReports. Sťahovať môžete buď jednotlivé knižnice, alebo rovno ZIP súbor, v ktorom sú všetky pohromade. Ďalej musíme zvoliť vhodný vstupný DataSource môže to byť JDBC databázy, XML súbor, Excel, JSON, CSV a ďalšie z mnohých preddefinovaných, prípadne si môžeme nadefinovať vlastný.

Návod na vytvorenie prvého jednoduchého reportu

Najprv si musíme pripojiť nejaký zdroj vstupných dát. Kliknite na ikonku Report Datasources. img ikona dátový zdroj - Softvér

Otvorí sa Vám okno so zoznamom Vašich zdrojov dát. Klikneme na tlačidlo New a vyberieme druh pripojenia do zdroja. Ja pre demonštráciu zvolím Database JDBC Connections a pokračujeme štandardne tlačidlom Next.

Vyplníme parametre pripojenia (každý to má samozrejme inak podľa zvolenej databázy, ja ako databázu používam Oracle)
okno definície db - Softvér

Môžeme otestovať tlačidlom TEST, a pokračujeme uložením dátového zdroja tlačidlom SAVE. Zaškrtneme tento dátový zdroj ako predvolený pre všetky naše reporty (dá sa meniť za behu). Tým máme vytvorené pripojenie do zdroja údajov. A môžeme vytvoriť náš prvý jednoduchý report.

Naša databáza pre prvý report je veľmi jednoduchá, obsahuje len dve tabuľky, keď jedna obsahuje dáta o užívateľoch, druhá je číselník miest. Pre demonštráciu základného reportu nič zložité nie je potrebné vytvárať.

Prvá tabuľka má názov: XTUSR a obsahuje tieto stĺpce:

Meno stĺpca popis dátový typ
idusr identifikátor užívateľa number
mestoid cudzí kľúč do tabuľky XTMESTO number
jmeno meno a priezvisko užívateľa text (VARCHAR2)
Druhá tabuľka má názov: XTMESTO a obsahuje tieto stĺpce:
Meno stĺpca popis dátový typ
id identifikátor mesta number
nazev názov mesta text (VARCHAR2)
Do databázy som předvyplnil tri mestá a päť užívateľov. Tým máme pripravený zdroj údajov a môžeme sa smelo pokúsiť vytvoriť náš prvý report.

V ponuke vyberieme Súbor a Nový (File / New).

Otvorí sa nám ponuka, v ktorej všetko ponecháme ako je (je predvybrané report a šablóna Blank A4). A pokračujeme tlačidlom Open this template. Otvorí sa nám okno v ktorom si náš report pomenujeme a zvolíme adresár, do ktorého sa nám budú reporty ukladať. Pokračujeme tlačidlom Next.A po informácii že je všetko OK tlačidlom Finish.

Na pravej strane editora je Okno Report Inšpektor v ňom máme zoznam všetkých "objektov" nášho reportu vo forme TREEVIEW (stromu). Klikneme pravým tlačidlom myši na 1 element tohto stromu (je to názov nášho reportu) az vyskakovacie ponuky vyberieme Edit Query. Sem umiestnime SQL dopyt do pripravenej databázy.

Ja zvolil jednoduchý otázka:

select idusr, jmeno, nazev from XTUSR u,XTMESTO m where u.mestoid=m.id order by m.nazev

Klikneme na Read Fields (to nám načíta slopce výsledku prevedenie dotazu). A okno s otázkou zavrieme tlačidlom OK. Vidíme že vo "stromu" reportu nám pod položkou Fields pribudli všetky stĺpce dotazu. Metódou Drag and Drop pretiahneme jednotlivé položky do reportu na pozíciu detail (viac obrázok)

rep 01 - Softvér

Ak si teraz dáme Preview (CTRL + ALT + PageDown, alebo kliknutím na tlačidlo Preview). Vidíme, že dáta sa nám síce zobrazila, ale majú medzi sebou veľké medzery. Upravíme teda umiestnenia a veľkosť oddielu Design podľa nasledujúceho obrázku. Všetko sa robí myšou. Chytíme spodnú linku detailu a posunieme jej až na spodnú hranu textového poľa našich Field. Ja navyše v sekcii Column Header na nadpisy nastavil tučné, väčším písmom a upravil ich popisky.

rep 01 - Softvér

Report nám dáta ukazuje už oveľa lepšie.

finalni report - Softvér

Tým by sme pre dnešok skončili a nabudúce si ukážeme ako zoskupiť užívateľa podľa mesta, pridáme si tabuľku kde budú napr. Prístupy užívateľov do databázy a urobíme si aj nejaké štatistiky.


 

Všetky články v sekcii
Softvér
Článok pre vás napísal Marek Kočí
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Pracuji jako vývojář aplikací pro systémy windows a linux.
Aktivity