Nástroje na vytváranie správ Java: porovnanie

1. Prehľad

Keď hovoríme o Nástroje na vykazovanie, veľa softvéru pokrýva túto oblasť. Väčšina z nich je však plnohodnotná Platformy Business Intelligence alebo Cloudové služby.

Čo sa však stane, ak chceme do našej aplikácie pridať iba niektoré funkcie prehľadu ako knižnicu? Niektoré tu preskúmame Nástroje na hlásenie Java vhodný na tento účel.

Zameriame sa hlavne na tieto open-source nástroje:

  • BIRT
  • Jasper Reports
  • Pentaho

Ďalej krátko analyzujeme nasledujúce komerčné nástroje:

  • FineReport
  • Logi správa (predtým JReport)
  • Správa Mill

2. Navrhovanie správ

V tejto časti preskúmame, ako môžeme vizuálne navrhovať správy a hrať sa s našimi údajmi. Upozorňujeme, že v tejto časti budeme odkazovať iba na nástroje s otvoreným zdrojovým kódom.

2.1. Vizuálne editory

Všetky tieto tri nástroje zahŕňajú editor WYSIWIG s možnosťou zobrazenia ukážky správy.

Návrhár správ BIRT a Štúdio Jaspersoft sú nástroje postavené na Eclipse RCP. To je dobrý bod pre väčšinu z nás vývojárov Java, pretože by sme mohli byť oboznámení s prostredím Eclipse. Na rozdiel od tých, Návrhár správ Pentaho vizuálne zle starol.

K dispozícii je tiež ďalšia zaujímavá funkcia Štúdio Jaspersoft: naše správy môžeme zverejňovať priamo na nich Server správ Jasper (systém správy správ).

2.2. Množiny údajov

Rovnako ako všetky nástroje na vytváranie prehľadov, môžeme súbory údajov načítať dotazom a dátový zdroj (Pozri nižšie). Potom ich môžeme transformovať na polia prehľadu, vytvoriť vypočítané polia alebo použiť agregačné vzorce.

Okrem toho je zaujímavé porovnávať ako môžeme spravovať viac súborov údajov pretože možno budeme potrebovať niekoľko z nich, ak naše údaje pochádzajú z rôznych otázok alebo dokonca z rôznych zdroje dát:

  • BIRT ponúka najjednoduchšie riešenie, pretože v jednej správe môžeme mať viac súborov údajov
  • S Jasper Reports a Pentaho, zakaždým musíme vytvoriť samostatný podsestavu, čo môže byť dosť zložité

2.3. Grafy a vizuálne prvky

Všetky nástroje poskytujú jednoduché prvky, ako sú tvary a obrázky, a tiež každú príchuť grafu: riadky, oblastiach, koláče, radar, krúžok, atď. Všetky podporujú aj krížové karty.

Avšak Jasper Reports poskytuje najbohatšiu zbierku vizuálnych prvkov. Pridáva sa k vyššie uvedenému zoznamu mapy, iskry, pyramídya Ganttov diagramy.

2.4. Správy o stylingu

Teraz si porovnajme umiestnenie a veľkosť prvkov na stránke:

  • Všetky nástroje poskytujú umiestnenie pixelov
  • BIRT a Pentaho tiež poskytuje umiestnenie podobné HTML (tabuľka, blok, riadok)
  • Žiadny z nich nepodporuje flexbox alebo mriežkový systém podobný CSS na veľkosť ovládacích prvkov

Aj keď musíme spravovať viac prehľadov, môžeme zdieľať rovnakú vizuálnu tému:

  • Jasper Reports poskytuje súbory tém so syntaxou XML-CSS
  • BIRT môže importovať šablóny štýlov CSS do návrhového systému
  • S Pentaho, štýly štýlov CSS môžeme pridať iba do hlavičky stránky. Takže je ťažké ich zmiešať s interným dizajnovým systémom

3. Správy o vykreslení

Teraz, keď sme videli, ako navrhovať správy, porovnajme, ako ich môžeme programovo vykresliť.

3.1. Inštalácia

Najprv si to všimnime všetky nástroje boli navrhnuté tak, aby ich bolo možné ľahko začleniť do projektu Java.

Na začiatok si môžete pozrieť naše venované články o správach BIRT a Jasper. Pre Pentaho je tu stránka pomocníka a bezplatné ukážky kódu.

Ďalej pre každý z týchto nástrojov pripojíme modul zostavy k údajom našej aplikácie.

3.2. Dátový zdroj

Prvá otázka, ktorú by sme si mali položiť, je: ako môžeme pripojiť modul správ k nášmu zdroju údajov projektu?

  • Jasper Reports: jednoducho ho pridáme ako parameter súboru fillReport metóda
  • BIRT riešenie je o niečo zložitejšie: mali by sme upraviť náš prehľad tak, aby sme nastavili atribúty zdroja údajov ako parametre
  • Pentaho má veľkú nevýhodu tu: pokiaľ nekupujeme ich PDI komerčný softvér, musíme použiť zdroj údajov JNDI, ktorý je náročnejší na nastavenie

Keď už hovoríme o zdrojoch údajov, ktoré typy sú podporované?

  • Všetky tri nástroje podporujú najbežnejšie typy: JDBC, JNDI, POJO, CSV, XML a MongoDB
  • REST API je požiadavkou moderných projektov, žiadny z nich ho však natívne nepodporuje
    • s BIRT, mali by sme kódovať a Groovy scenár
    • Jasper Reports vyžaduje ďalší bezplatný doplnok
    • s Pentaho, mali by sme kódovať a Groovy scenár alebo získať PDI komerčný softvér
  • Súbory JSON natívne podporuje server Jasper Reports a Pentaho, ale BIRT bude vyžadovať externú knižnicu parserov Java
  • Kompletný zoznam na porovnanie nájdeme v tejto matici

3.3. Parametre a prispôsobenie za behu

Keď sme pripojili našu správu k nášmu zdroju údajov, urobme niekoľko údajov!

Teraz je dôležité, ako načítať naše údaje o koncových používateľoch. Za týmto účelom môžeme odovzdať parametre metóde vykreslenia. Tieto parametre mali byť definované pri návrhu zostavy, nie za behu. Čo však môžeme urobiť, ak je napríklad náš súbor údajov založený na rôznych dotazoch v závislosti od kontextu koncového používateľa?

S Pentaho a Jasper Reports, to jednoducho nie je možné urobiť, pretože súbor správy je binárny a neexistuje žiadna Java SDK, ktorá by ich upravovala. V porovnaní, BIRT správy sú súbory XML. Okrem toho môžeme na ich úpravu použiť rozhranie Java API, takže je veľmi ľahké všetko prispôsobiť za behu programu.

3.4. Výstupné formáty a klienti Javascript

Našťastie všetky bežné formáty podporujú všetky nástroje: HTML, PDF, Excel, CSV, obyčajný text, a RTF. V dnešnej dobe sa tiež môžeme pýtať, ako môžeme výsledok správy integrovať priamo do našich webových stránok. Nebudeme sa však zmieniť o hrubom zahrnutí vizualizéra PDF.

  • Najlepším riešením je použiť Javascript klientom vykresliť správy priamo do prvku HTML. Pre BIRT, klient Javascript je Vykonajte akciu JSAPI a pre Jasper Reports, mali by sme použiť JRIO.js
  • Pentaho neposkytuje nič iné ako integráciu iFrame. Toto riešenie funguje, ale môže mať vážne nevýhody

3.5. Samostatné nástroje na vykreslenie

Okrem integrácie našej správy do webovej stránky by nás mohlo zaujímať aj server na vykresľovanie, ktorý je k dispozícii okamžite po vybalení. Každý nástroj poskytuje svoje vlastné riešenie:

  • Prehliadač BIRTje ľahká webová aplikácia vzorka na vykonanie BIRT správy na požiadanie. Je to open-source, ale nezahŕňa funkcie správy prehľadov
  • pre Pentaho a Jasperova správa, existujú iba komerčné softvérové ​​balíky

4. Stav a aktivita projektov

Najprv niekoľko slov o licenciách. BIRT je pod EPL, Jasper Reports pod LGPLv3a Pentaho pod LGPLv2.1. Môžeme teda vložiť všetky tieto knižnice do našich vlastných produktov, aj keď sú komerčné.

Potom si môžeme položiť otázku, ako sa udržiavajú tieto open source projekty a či je komunita stále aktívna:

  • Jasper Reports má dobre udržiavané úložisko so stabilnou strednou aktivitou prostredníctvom svojho editora TIBCO Software
  • BIRT Úložisko zostáva zachovaná, ale je aktivita je veľmi nízka od roku 2015, kedy OpenText získal svojho editora Actuate
  • Podobne Pentaho aktivita úložiska je veľmi nízka od akvizície spoločnosti Hitachi-Vantara v roku 2015

Môžeme to potvrdiť pomocou trendov Stackoverflow. Najnižšia popularita je pre BIRT a Pentaho, ale je mierny pre Jasper Reports.

Všetky tri Popularita nástrojov Java sa za posledných 5 rokov znížila na popularite zostávajú zatiaľ stabilné. Môžeme to vysvetliť vznikom ponúk cloudu a Javascriptov.

5. Komerčné nástroje na hlásenie Java

Okrem riešení typu open-source sú k dispozícii aj niektoré komerčné možnosti, ktoré stoja za zmienku.

5.1. Pokuta správa

Pokuta správa bol pôvodne navrhnutý na vykonávanie ako samostatný server. Našťastie sme ho schopní zahrnúť ako súčasť nášho projektu, ak ho chceme použiť. Musíme ručne skopírovať všetky súbory JAR a zdroje do našej VOJNY, ako je popísané v ich postupe.

Po vykonaní tohto kroku môžeme vidieť Platforma pre rozhodovanie nástroj dostupný ako URL v našom projekte. Z tejto adresy URL môžeme vykonávať správy priamo v poskytnutom webovom zobrazení, napr iFrame, alebo pomocou svojho klienta Javascript. Nemôžeme však generovať prehľady programovo.

Ďalším obrovským obmedzením je cieľový čas behu. Verzia 10 podporuje iba Java 8 a Tomcat 8.x.

5.2. Logi Report (predtým JReport)

Rovnako ako Fine Report, aj Logi Report bol navrhnutý tak, aby sa mohol vykonávať ako samostatný server, ale môžeme ho integrovať ako súčasť nášho existujúceho projektu WAR. Budeme teda čeliť rovnakému obmedzeniu ako pri Pokuta správa: nemôžeme programovo generovať správy.

Na rozdiel od Fine Report. Logi Report však podporuje takmer všetky servletové kontajnery a Javu 8 až 13.

5.3. ReportMill Reporting

Nakoniec, Za zmienku stojí ReportMill, pretože môžeme ho hladko vložiť do každej Java aplikácie. Tiež ako BIRT, je to veľmi flexibilné: správy môžeme prispôsobiť za behu, pretože ide o obyčajné súbory XML.

Hneď však vidíme, že ReportMill zostarol a v porovnaní s ostatnými riešeniami má tiež zlú sadu funkcií.

6. Záver

V tomto článku sme prešli niektorými z najznámejších nástrojov na tvorbu prehľadov Java a porovnali sme ich vlastnosti.

Na záver môžeme v závislosti na našich požiadavkách zvoliť jeden z týchto nástrojov na správu Java:

Vyberieme BIRT:

  • Pre jednoduchú knižnicu nahradiť existujúce domáce riešenie
  • Pre jeho najväčšia flexibilita a vysoký potenciál prispôsobenia

Vyberieme Jasper Reports:

  • Ak potrebujeme spravodajskú knižnicu kompatibilnú s a plnohodnotný systém správy správ
  • Ak chceme staviť na najlepší dlhodobý vývoj a podpora

$config[zx-auto] not found$config[zx-overlay] not found