JasperReports is een open-source rapportagetool voor Java die applicatierapporten genereert. Deze rapportagetool ondersteunt het exporteren van rijke rapportinhoud naar schermen, printers of verschillende bestandsformaten zoals HTML, PDF, XLS, RTF, CSV, XML, ODT en TXT.
JasperReports kan ook worden gebruikt voor Java-geschikte applicaties zoals Java EE of webapplicaties om dynamische content te genereren.
Installeer JasperReports
Installeer de Jasper Reports Community Edition vanaf hier.
https://community.jaspersoft.com/community-download
Structuur van het Jasper-rapport
Het .jrxml-rapportsjabloon bestaat uit de volgende delen zoals weergegeven in het onderstaande diagram.
1. De titel bevat de "kop" van het rapport. Het verschijnt slechts één keer aan het begin van het rapport. Het rapport heet bijvoorbeeld "Student Report."
2. De paginatitel kan datum- en tijdinformatie of de naam van de instelling bevatten. Het wordt bovenaan elke pagina weergegeven. Bijvoorbeeld: de paginatitel kan "Student Records" zijn.
3. Kolomkoppen geven de namen van specifieke velden weer die in het rapport worden weergegeven, zoals "Student ID", "Student Name", "Student Address," enzovoort.
4. De gedetailleerde informatiesectie toont vermeldingen voor specifieke velden. Bijvoorbeeld: Student ID=101, Student Name="Den Peek", Student Address="Pune".
5. Kolomvoeten kunnen de som van elk veld weergeven. Bijvoorbeeld: "Totale studietijd: 6 uur per dag."
6. De voettekst kan paginanummerinformatie bevatten. Het wordt onderaan elke pagina weergegeven, bijvoorbeeld: "Paginanummers 1, 2, 3, en alle paginanummers."
7. Samenvatting: De samenvatting van het rapport, ten minste één keer geschreven in de samenvatting.
JasperReports — Levenscyclus
Ontwerp het rapport — In deze stap maken we een JRXML-bestand, een XML-document met de rapportage-indeling. Compilatierapport - In deze stap wordt JRXML gecompileerd tot een binair object genaamd Jasper (*.jasper). Gegevens invullen in rapporten—in deze stap worden gegevens uit de applicatie ingevuld in het samengestelde rapport. De net.sf.jasperreports.engine.JasperFillManager-klasse biedt de benodigde functies om de rapportgegevens in te vullen. Het systeem maakt een Jasper-printbestand (*.jrprint), dat kan worden gebruikt om rapporten af te drukken of te exporteren. Exportrapport - In deze stap kunnen we JasperExportManager gebruiken om het Jasper-printbestand dat in de vorige stap is gemaakt te exporteren naar elk formaat.
API-klasse
Er zijn veel klassen beschikbaar voor het samenstellen van JRXML-rapportontwerpen, het invullen van rapporten, het afdrukken van rapporten en het exporteren ervan als PDF-, HTML- en XML-bestanden.
Welke inhoud zit er in het (net.sf.jasperreports.engine) pakket?
· JasperCompileManager — Gebruikt om JRXML-rapporttemplates te compileren. · JasperFillManager — Gebruikt om rapporten in te vullen met gegevens uit databronnen. · JasperPrintManager — Gebruikt om documenten af te drukken die door de JasperReports-bibliotheek zijn gegenereerd. · JasperExportManager — Gebruikt om PDF-, HTML- of XML-inhoud te verkrijgen van documenten die tijdens het rapportinvulproces zijn gegenereerd.
Gegevensbron
Een databron is een gestructureerde datacontainer. Bij het genereren van rapporten haalt de JasperReports-engine gegevens op uit de databron. Data kan worden verkregen uit databases, XML-bestanden, objectarrays en objectcollecties.
De onderstaande tabel vat databronnen en hun implementatieklassen samen—
Jasper Reports data-elementen
Parameters: $P $P{parameter_name)
· Het wordt gebruikt voor individuele waarden in het rapport.
· Gegevens die niet door de databron kunnen gaan, kunnen via parameters worden doorgegeven. Bijvoorbeeld rapporttitels en andere gegevens.
· JasperReports-sjablonen of JRXML-sjablonen kunnen nul of meer parameterelementen bevatten.
Veld: $F $F{field_name}
· Rapportvelden zijn elementen die de datamapping tussen databronnen en rapporttemplates vertegenwoordigen.
Het wordt gebruikt om waarden in elke iteratie te wijzigen, of met andere woorden, om een reeks gegevens in een tabel weer te geven.
Variabele: $V $V{variable_name}
· Het wordt geleverd door Jasper Reports.
Het wordt ook gebruikt om berekeningen uit te voeren op Jasper-rapporten, zoals rekenkundige bewerkingen.
Stappen om een Jasper-rapport aan te maken
1. Ontwerp het sjabloon door het jrxml-bestand te kopiëren naar de Spring Resources-map
2. Maak de vereiste parameters
3. Genereer databronnen
4. Compileer het .jrmxl-sjabloon dat is opgeslagen in het JasperReport-object
5. Vul het rapport in—door gecompileerde .jrxml-objecten, parameters en databronnen door te geven.
6. Exportrapporten — Gebruik JasperExportManager
Voorbeeld van SpringBoot — JasperReports
Voeg Maven-afhankelijkheden toe.
Controller
Dienst
emp24.jrxml
Na het uitvoeren ontvang je het gegenereerde rapport.http://localhost:8990/empapp/api/v1/reports/jasper/emp24?fileType=doc
JasperReports — Voorbeeld van een subrapportrepresentatie
Voor subrapporten, open de bestaande sjabloon emp.jrxml en voeg een ander sjabloon user.jrxml toe als subrapport.
Om een kindrapport aan het hoofdrapport toe te voegen, open je het hoofdrapport, klik je op het kindrapport in het paneel, sleep je het naar het samenvattingsgedeelte en geef je de volgende details.
Selecteer "Alleen kindrapportelementen aanmaken" en klik dan op "Volgende." Gebruik geen databaseverbindingen, ga dan door naar de volgende stap en maak het af. Klik met de rechtermuisknop > Align > Adapt to Breedte/Tabel Format
Voor User.jrxml subrapporten geven we subrapportgegevens van het hoofdrapport door als parameter. Om dit te bereiken hebben we ......
Maak een nieuwe parameter aan zoals subReport en het datatype JasperReport zoals in het hoofdrapport Maak nieuwe parameters aan voor subDatasource en datatype JRBeanCollectionDataSource Maak nieuwe parameters aan subParameters en datatype Map
Open nu de subrapporteigenschappen
Elimineer $P{REPORT_CONNECTION} Uitdrukking: $P{subReport} Parametermapping-expressie: $P{subParameters} Gegevensbronexpressie: $P{subReportDataSource}
Nu worden alle data die we als parameter doorgeven in het subrapport ingevuld.
Voorbeeldcode
empSubreport.jrxml
Test hem:http://localhost:8990/empapp/api/v1/reports/jasper/subreport?fileType=pdf
Referentie:De hyperlink-login is zichtbaar. Origineel:De hyperlink-login is zichtbaar. |