Výukový program JasperReports: K čemu je Jasper Report Java?
⚡ Chytré shrnutí
JasperReports pro Java je open source reporting engine, který převádí aplikační data do pixel perfect dokumentů. Tento článek vysvětluje životní cyklus reportů, instalaci Jaspersoft Studia, vytváření šablon reportů, strukturu pásem, srovnání s Pentaho a praktická omezení, se kterými se týmy setkávají.
K čemu slouží JasperReports Java?
Jasper Zprávy je open-source reportovací nástroj pro Java který se používá pro vytváření sestav aplikací. Tento nástroj pro vytváření sestav pomáhá s vypisováním bohatého obsahu na obrazovku, na tiskárnu nebo do různých souborů, jako je HTML, PDF, XLS, RTF, CSV, XML, ODT a TXT. JasperReports lze také použít pro Java-povolené aplikace jako Java EE nebo webové aplikace pro generování dynamického obsahu.
Ve většině diskusí se objevují pohromadě tři názvy produktů a jejich včasné oddělení zabraňuje nejasnostem později na této stránce.
| Jméno | Co to je | Kdo to používá |
|---|---|---|
| Knihovna JasperReports | Jedno Java knihovna, která kompiluje, vyplňuje a exportuje reporty | Java vývojáři vkládající sestavy do aplikace |
| Jaspersoft Studio | Jedno Eclipse vizuální designér založený na technologii, který vytváří soubory JRXML | Návrháři sestav vytvářejí rozvržení |
| Server JasperReports | Samostatný server, který ukládá, plánuje a doručuje reporty | Týmy distribuující reporty firemním uživatelům |
Tato stránka se zaměřuje na knihovnu a Jaspersoft Studio, protože tyto dvě komponenty jsou vše, co je potřeba k návrhu a spuštění první zprávy. Upozorňujeme, že komunitní edice nyní zahrnuje pouze tyto dvě komponenty, jelikož JasperReports Server již není nabízen ke stažení pro komunitu.
Proč používat Jasper Reports?
Zde je mnoho důvodů pro použití nástroje pro tvorbu reportů Jasper:
- Nabízí výkon při generování zpráv a jejich doručení uživatelům.
- Pomáhá vám reprezentovat vaše data v textovém nebo grafickém formátu.
- Jedná se o samostatný a vestavěný reportovací server pro sestavování a provádění reportů.
- Umožňuje řízení přístupu na základě rolí ke všem sestavám v úložišti.
- Pro integraci s interními ověřovacími systémy je k dispozici framework Spring Security.
- Nabízí bezpečný, plánovaný a automaticky dodávaný interaktivní reportovací modul.
- Přehledy můžete vkládat do Java nebo ne-Java aplikace.
- Lze exportovat různé formáty zpráv.
- Může generovat vodoznaky, které jsou umístěny přes primární obrázek.
- Nabízí kompletní sadu MÝDLO, REST a webové služby.
- Umožňuje vám používat data jedné sestavy z více zdrojů dat.
Protože je knihovna vydána pod licencí LGPL, lze ji integrovat do komerčních produktů bez poplatku za licenci, což je důvod, proč mnoho Java Týmy si ho vybírají před proprietárními reportovacími nástroji.
Vlastnosti Jasper Reports
Nyní se podíváme na funkce JasperReports.
Zde jsou důležité funkce nástroje Jasper Reports:
- Nabízí flexibilní rozvržení sestavy napříč pásmy, sloupci a oblastmi volného tvaru.
- Vývojáři mohou poskytovat data různými způsoby, včetně JavaKolekce objektů Bean, SQL dotazy a XML dokumenty.
- Více zdrojů dat lze kombinovat v rámci jedné sestavy pomocí podsestav a datových adaptérů.
- Vodoznaky lze také aplikovat přes primární obrázek.
- Můžete generovat podsestavy, které jsou vnořené uvnitř nadřazeného rozvržení.
- To vám pomůže exportovat zprávy v různých formátech, jako je PDF, HTML, RTF a Microsoft Soubory Excel.
- Modul umožňuje, aby definice sestav zahrnovaly grafy, jako jsou sloupcové, koláčové, spojnicové a časové řady.
- Výrazy pro sestavy lze zapsat v Java, Groovynebo JavaSkript.
Tyto schopnosti jsou zpřístupněny prostřednictvím fixní sekvence zpracování, kterou krok za krokem popisuje následující část.
Životní cyklus JasperReports
Nyní se dozvíme o životním cyklu JasperReports.
Následuje obecný postup životního cyklu Jasper Reports:
Výše uvedený diagram znázorňuje čtyři fáze v pořadí. Každá fáze vytváří soubor, který se stává vstupem pro další fázi, a proto nelze sekvenci nikdy obrátit.
| Fáze | Vstup | Výstup | Přípona souboru |
|---|---|---|---|
| Projektování | Rozhodnutí o rozvržení | Šablona zprávy | .jrxml |
| Kompilace | Soubor .jrxml | Zkompilovaná binární šablona | .jaspis |
| Provádění | Soubor .jasper plus data | Vyplněná zpráva | .jrprint |
| Export | Soubor .jrprint | Závěrečný dokument | .pdf, .html, .xls a další |
Návrh zprávy
Toto bude první krok, ve kterém vytvoříme soubor JRXML. Jedná se o jednoduchý dokument XML, který definuje rozvržení sestavy. Tento soubor můžete vytvořit pomocí libovolného textového editoru nebo návrháře sestav.
Pokud ale používáte návrhář sestav, můžeme si vizualizovat rozvržení sestavy a skutečnou strukturu JRXML lze ignorovat.
Sestavení zprávy
V této fázi životního cyklu se kompiluje JRXML, který je vytvořen v první fázi, a vygeneruje se binární objekt s názvem soubor Jasper (soubor s příponou jasper).
Tato kompilace se provádí za účelem dosažení lepšího výkonu během provádění. Tyto vygenerované soubory Jasper by měly být odeslány spolu s vaší aplikací, aby bylo možné spouštět zprávy.
Provedení zprávy
V této fázi se shromažďují data z aplikace a vyplňují se do sestaveného formátu zprávy. Existuje třída s názvem net.sf.jasperreports.engine.JasperFillManager, která nabízí funkce pro vyplnění dat v sestavách.
Výstup bude uložen do tiskového souboru Jasper (soubor s příponou jrprint), který lze použít k tisku nebo exportu sestavy.
Export sestavy do požadovaného formátu
V této poslední fázi musíte exportovat tiskový soubor Jasper, který byl vytvořen dříve, do libovolného formátu pomocí třídy JasperExportManager. Protože Jasper nabízí více formátů exportů, můžeme použít stejný vstup k vytvoření různých reprezentací dat.
Jak nainstalovat Jasper Reports – Nastavení prostředí
Nyní se podívejme na podrobný postup nastavení prostředí JasperReports. Níže uvedené snímky obrazovky byly pořízeny pomocí instalačního programu verze 6.9. Aktuální verze pro komunitu je 6.21.3, vydaná 23. dubna 2024, a pořadí snímků obrazovky se nezměnilo, i když se číslo verze v názvu souboru liší.
Krok 1) Stáhněte si komunitní vydání jasper reports
Přejděte na to Odkaz a kliknutím na možnost Stáhnout nyní nainstalujte edici Jasper Reports Community.
Krok 2) Vyberte Jaspersoft Studio CE
Z komunitních edicí vyberte Jaspersoft Studio CE.
Krok 3) Stáhněte si Jaspersoft Studio
Přejděte na to https://trials.autocruitment.com a klikněte na tlačítko Stáhnout a poté otevřete stažený instalační spustitelný soubor pro váš operační systém.
Krok 4) Klikněte na tlačítko souhlasit
Zobrazí se následující obrazovka. Vyberte tlačítko Souhlasím.
Krok 5) Vyberte umístění
Vyberte místo instalace a klikněte na tlačítko Další.
Krok 6) Pokrok nyní běží
Průběh uvidíte na další obrazovce.
Krok 7) Klikněte na tlačítko dokončit
Na další obrazovce klikněte na tlačítko Dokončit.
Krok 8) Pokrok je dokončen
V okně se vám zobrazí následující obrazovka.
Krok 9) Začínáme
Dále klikněte na možnost Začít.
Krok 10) Začněte spolupracovat se studiem Jasper Reports
Objeví se následující obrazovka a můžete začít pracovat se studiem Jasper Reports.
💡 Tip: Jaspersoft Studio je Eclipse aplikace založená na a potřebuje kompatibilní Java běhové prostředí přítomné na počítači. Pokud se instalační program odmítne spustit, před opětovnou instalací ověřte nainstalovanou verzi JDK.
Příklad vytvoření šablony sestavy
Nyní se naučíme, jak vytvořit šablonu reportu v JasperReports.
Šablona reportu používaná v JasperReports je jednoduchý XML soubor s příponou jrxml. Tento soubor obsahuje tag jasperReport jako svůj kořenový element. Framework JasperReports dokáže zpracovat různé typy zdrojů dat.
Šablona zprávy se navrhuje a vytváří pomocí následujících kroků.
Krok 1) Vytvoření souboru JRXML v Jaspersoft Studio.
- Přejděte na možnost Soubor.
- Vyberte podnabídku Nový.
- Klikněte na možnost Jasperova zpráva.
Krok 2) Výběr požadované šablony.
- Vyberte šablonu, například třešeň.
- Klikněte na tlačítko „Další“.
Krok 3) Výběr nadřazené složky.
- Vyberte složku Moje sestavy.
- Zadejte název souboru, například „Cherry Report“.
- Klikněte na tlačítko „Další“.
Krok 4) V okně Zdroj dat klikněte na tlačítko „Nový“ a vytvořte nový datový adaptér.
Krok 5) Výběr datového adaptéru.
- Vyberte datový adaptér ze seznamu. Například „Kolekce datových JavaFazole.”
- Klikněte na tlačítko „Další“.
Krok 6) Zadání údajů o datovém adaptéru a výběr třídy továrny.
- Zadejte název adaptéru.
- Vyberte třídu továrny kliknutím na tlačítko „…“.
Krok 7) Zadání předpony nebo vzoru.
- Zadejte předponu názvu nebo vzor.
- Klikněte na odpovídající položky.
- Klikněte na tlačítko „OK“.
Krok 8) Definování třídy factory a přidání cesty k souborům jar.
- Zadejte název statické metody v tovární třídě. V tomto příkladu sestav Jasper je to createBeanCollection.
- Pokud váš JavaDefinice beanů má popisy polí a pokud byste je chtěli použít jako názvy v Jaspersoft Studiu, zaškrtněte políčko použít popis pole.
- Přidejte cestu k souborům jar.
- Klikněte na tlačítko „Dokončit“.
Krok 9) Klikněte na tlačítko „Další“.
Krok 10) Gratulujeme! Úspěšně jste přidali všechny potřebné informace pro vytvoření reportu. Klikněte na tlačítko „Dokončit“.
Zpráva bude vygenerována, jak je znázorněno na obrazovce níže.
Výše uvedený soubor vyžaduje kompilaci do binárního formátu JasperReport, který se nazývá soubor jasper.
Rozhraní net.sf.jasperreports.engine.design.JRCompiler, které je součástí knihovny JasperReports, hraje důležitou roli při kompilaci tohoto souboru šablony reportu.
Implementace tohoto rozhraní může být zapsána Java, JavaScénář, Groovynebo jakýkoli jiný skriptovací jazyk.
Soubor JRXML můžete zkompilovat pomocí následujících dvou metod:
- Programová kompilace z Java kód.
- Kompilace s použitím Apache Ant úkol.
Následující úryvek ukazuje programovou trasu, kde jeden řádek kompiluje šablonu a druhý řádek ji vyplňuje parametrem JavaSbírka fazolí.
import net.sf.jasperreports.engine.*; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; public class ReportRunner { public static void main(String[] args) throws JRException { // 1. Compile the JRXML template into a .jasper file JasperReport report = JasperCompileManager.compileReport("CherryReport.jrxml"); // 2. Fill the compiled template with a collection of beans JRBeanCollectionDataSource source = new JRBeanCollectionDataSource(EmployeeFactory.createBeanCollection()); JasperPrint print = JasperFillManager.fillReport(report, null, source); // 3. Export the filled report to PDF JasperExportManager.exportReportToPdfFile(print, "CherryReport.pdf"); System.out.println("Report exported successfully"); } }
Výstup:
Report exported successfully
Pochopení různých pásem zpráv
Rozvržení JasperReports je rozděleno do horizontálních sekcí nazývaných pásy. Každý pás má pevně dané pravidlo tisku a pochopení těchto pravidel umožňuje návrháři přesně určit, kde se hodnota v hotovém dokumentu objeví.
Následují standardní pásma sestav používaná většinou komerčních nástrojů pro generování sestav.
- Předmět
- Záhlaví stránky
- Záhlaví sloupce
- Detail
- Zápatí sloupce
- Zápatí stránky
- Zápatí poslední stránky
- Shrnutí
- Záhlaví skupiny
- Zápatí skupiny
- Pozadí
- Žádné údaje
Pojďme se podrobněji seznámit s každým reportérským pásmem.
Předmět
Toto pásmo se zobrazuje na začátku sestavy. Lze jej umístit na vlastní první stránku nastavením atributu isTitleNewPage="true".
Záhlaví stránky
Záhlaví stránky se zobrazuje na začátku každé stránky. Pokud je použito záhlaví stránky, nezahrnuje první stránku a pokud je použito souhrnné pásmo s nastavením isSummaryWithPageHeaderAndFooter="false".
Záhlaví sloupce
Záhlaví sloupců se na každé stránce zobrazí před pruhem podrobností.
Detail
Sekce podrobností se iteruje pro každý záznam v dodaném zdroji dat. Je také povoleno mít více pásem podrobností (1, 2 atd.).
Zápatí sloupce
Tato sekce se zobrazí pod pásem podrobností na každé stránce, kde se pás podrobností nachází. Výchozí nastavení je konec stránky, ale nastavením atributu lze toto nastavení změnit tak, aby se nacházelo pod posledním pásem podrobností. isFloatColumnFooter="true".
Zápatí stránky
Tato sekce se zobrazí na konci každé stránky, s výjimkou souhrnného pásma, pásma s názvem a posledního nesouhrnného pásma.
Zápatí poslední stránky
Tato část se zobrazí na poslední stránce místo běžného zápatí stránky, pokud není uveden souhrnný pás.
Shrnutí
Souhrnná část se zobrazí na konci zprávy na nové stránce pouze tehdy, když isSummaryNewPage="true" je nastaveno a se záhlavím a zápatím stránky, když isSummaryWithPageHeaderAndFooter="true" je nastaven.
Záhlaví skupiny
Tato sekce se zobrazí pouze tehdy, když je definována, pokaždé, když se změní skupinový výraz, před pásem detailů.
Zápatí skupiny
Tato část se zobrazí pouze v případě, že je definována skupina, pokaždé před změnou výrazu skupiny, po pásmu podrobností.
Pozadí
Zobrazuje se na všech stránkách jako pozadí pro všechny ostatní reportážní pásma.
Žádná data
Tento pás se zobrazí, pokud nebyl předán žádný zdroj dat nebo je zdroj dat prázdný a whenNoDataType="NoDataSection" je nastaven.
Jasper vs. Pentaho
Nyní se dozvíme o rozdílu mezi Jasperem a Pentahem.
Zde jsou hlavní rozdíly mezi Jasperem a Pentahem:
| parametry | Jaspis | Pentaho |
|---|---|---|
| zprávy | Jasper používá pro návrh reportů Jaspersoft Studio. | Používá návrhář sestav Pentaho. |
| podpora ETL | Jaspersoft používá pro účely ETL verzi Talend Open Studio. | Jako výchozí používá Pentaho Data Integrator ETL nástroj. |
| Hlavní obrazovka | Funkce řídicího panelu je k dispozici pouze v edici Enterprise od Jaspersoftu. | Pentaho nabízí ve svých dashboardech širokou škálu funkcí. |
| Mobile Business Intelligence | Jaspersoft má lepší podporu pro mobilní BI. | Pentaho se musí spolehnout na nástroj třetí strany, aby vylepšil zážitek z mobilní business intelligence. |
| Dokumentace | Lepší marketing, weby a dokumentace. | Podpora dokumentace je špatná. |
| Nejlepší funkce | Snazší vyhledávání a nalezení toho, co potřebujete. | Nabízí dolování dat a integraci s iPhonem. |
| Placená verze | Placená verze nabízí funkce jako ad hoc dotaz webové uživatelské rozhraní a webové uživatelské rozhraní pro tvorbu dashboardů. | Nabízí funkce jako integraci LDAP, jednotné přihlašování (SSO) a auditování. |
Týmy již investovaly do Java Stack si obvykle vybírá Jasper, zatímco týmy, které potřebují rozsáhlou integraci dat spolu s reportingem, si často vybírají Pentaho.
Výzvy, kterým čelili při vytváření JasperReports
Zde je několik výzev, kterým budete čelit při vytváření Jasper Reports:
- Základní změny – když se obchodní pravidla změní nebo vylepší, je nutné změnit základní logiku sestavy.
- Složité sestavy – dobrými příklady jsou podsestavy a sestavy s křížovými tabulkami.
- Grafické sestavy nebo vizuální grafy, například grafy, čárové grafy XY, koláčové grafy, sloupcové grafy, časové řady a měřicí grafy.
Nevýhody používání Jasper Reports
Zde jsou nevýhody používání Jasper Reports.
- Jakmile začnete provádět jakékoli změny v částech balíčku a odebírat funkce, je velmi obtížné se vrátit k výchozímu nastavení balíčku.
- Je příliš rigidní a úprava čar a vytváření křížových tabulek je náročný úkol.
- Některé běžné úkoly, jako je zadávání mezisoučtů pro seskupenou sestavu, jsou v jiných návrhářích sestav jednodušší.
- Jasper vyžaduje, abyste sestavy před jejich spuštěním zkompilovali. To znamená, že vývojáři sestav musí mít celý Java SDK nainstalováno.
- Když sestavu upravujete, někdy se nezobrazuje stejný náhled, jaký je zobrazen na webu.























