JasperReports-handleiding: Waarvoor dient JasperReports? Java?
⚡ Slimme samenvatting
JasperReports voor Java Jaspersoft Studio is een open-source rapportage-engine die applicatiegegevens omzet in pixelperfecte documenten. Dit artikel beschrijft de rapportagelevenscyclus, de installatie van Jaspersoft Studio, het maken van rapporttemplates, de bandstructuur, een vergelijking met Pentaho en de praktische beperkingen waar teams tegenaan lopen.

Waar is JasperReports voor? Java?
Jasper Reports is een open-source rapportagetool voor Java JasperReports wordt gebruikt voor het rapporteren van applicaties. Deze rapportagetool helpt bij het schrijven van uitgebreide content naar het scherm, naar de printer of naar verschillende bestandsformaten zoals HTML, PDF, XLS, RTF, CSV, XML, ODT en TXT. JasperReports kan ook worden gebruikt voor Java-enabled toepassingen zoals Java EE- of webapplicaties om dynamische inhoud te genereren.
In de meeste discussies komen drie productnamen samen voor, en door ze vroegtijdig van elkaar te scheiden, wordt latere verwarring op deze pagina voorkomen.
| Naam | Wat het is | Wie gebruikt het? |
|---|---|---|
| Jasper Reports-bibliotheek | De Java bibliotheek die rapporten compileert, vult en exporteert | Java ontwikkelaars die rapporten in een applicatie integreren |
| Jaspersoft Studio | De Eclipse Op visuele vormgeving gebaseerde ontwerper die JRXML-bestanden produceert. | Rapportontwerpers van gebouwplattegronden |
| Jasper Reports-server | Een zelfstandige server die rapporten opslaat, plant en verzendt. | Teams verspreiden rapporten onder zakelijke gebruikers. |
Deze pagina richt zich op de bibliotheek en Jaspersoft Studio, omdat deze twee componenten alles zijn wat nodig is om een eerste rapport te ontwerpen en uit te voeren. Houd er rekening mee dat de community-editie nu alleen nog deze twee componenten bevat, aangezien JasperReports Server niet langer als community-download wordt aangeboden.
Waarom Jasper Rapporten gebruiken?
Er zijn talloze redenen om een Jasper-rapportagetool te gebruiken:
- Het biedt prestaties voor het genereren van rapporten en levering aan gebruikers.
- Het helpt u om uw gegevens in tekstueel of grafisch formaat weer te geven.
- Het is een zelfstandige en ingebedde rapportageserver voor het compileren en uitvoeren van rapportages.
- Het maakt op rollen gebaseerde toegangscontrole mogelijk voor alle rapporten in de repository.
- Er is een Spring Security-framework beschikbaar voor integratie met interne authenticatiesystemen.
- Het biedt een veilige, geplande en automatisch gegenereerde interactieve rapportagemodule.
- U kunt rapporten insluiten in Java of niet-Java toepassingen.
- Er kunnen verschillende formaten van rapporten worden geëxporteerd.
- Het kan watermerken genereren die over de primaire afbeelding worden gelegd.
- Het biedt een complete set SOAP, REST en webservices.
- Hiermee kunt u afzonderlijke rapportgegevens uit meerdere gegevensbronnen gebruiken.
Omdat de bibliotheek onder de LGPL-licentie is uitgebracht, kan deze zonder kosten per gebruiker in commerciële producten worden opgenomen, wat de reden is dat veel Java Teams geven er de voorkeur aan boven eigen rapportagesystemen.
Kenmerken van Jasper Rapporten
Nu bespreken we de functies van JasperReports.
Hieronder vindt u de belangrijkste functies van de Jasper Reports-tool:
- Biedt flexibele rapportindelingen met banden, kolommen en vrije vormgebieden.
- Ontwikkelaars kunnen gegevens op verschillende manieren aanleveren, waaronder: JavaBean-verzamelingen, SQL-query's en XML-documenten.
- Meerdere gegevensbronnen kunnen binnen één rapport worden gecombineerd door middel van subrapporten en gegevensadapters.
- Watermerken kunnen ook over de hoofdafbeelding worden aangebracht.
- Je kunt subrapporten genereren die genest zijn binnen een bovenliggende lay-out.
- Het helpt u bij het exporteren van rapporten in verschillende formaten, zoals PDF, HTML, RTF, en Microsoft Excel-bestanden.
- De engine maakt het mogelijk om in rapportdefinities grafieken op te nemen zoals staafdiagrammen, cirkeldiagrammen, lijndiagrammen en tijdreeksdiagrammen.
- Rapportage-uitdrukkingen kunnen worden geschreven in Java, Groovyof JavaScript.
Deze mogelijkheden worden beschikbaar gesteld via een vaste verwerkingssequentie, die in de volgende sectie stap voor stap wordt beschreven.
Levenscyclus van JasperReports
Nu gaan we meer leren over de levenscyclus van JasperReports.
Hieronder volgt het algemene verloop van de levenscyclus van Jasper Reports:
Het bovenstaande diagram toont de vier fasen in volgorde. Elke fase produceert een bestand dat als invoer dient voor de volgende fase. Daarom kan de volgorde nooit worden omgekeerd.
| Stadium | Invoer | uitgang | Bestandsextensie |
|---|---|---|---|
| Het ontwerpen van | Indelingsbeslissingen | Rapportsjabloon | .jrxml |
| Het compileren | .jrxml-bestand | Gecompileerde binaire sjabloon | .Jasper |
| uitvoeren | .jasper-bestand plus gegevens | Ingevuld rapport | .jrprint |
| Exporteren | .jrprint-bestand | Einddocument | .pdf, .html, .xls en andere |
Het rapport ontwerpen
Dit is de eerste stap: het maken van het JRXML-bestand. Dit is een eenvoudig XML-document dat de lay-out van het rapport definieert. Je kunt dit bestand maken met elke teksteditor of rapportontwerper.
Als u echter de rapportontwerper gebruikt, kunnen we de lay-out van het rapport visualiseren en kan de werkelijke structuur van het JRXML-bestand worden genegeerd.
Het rapport samenstellen
In deze levenscyclusfase wordt de JRXML die in de eerste fase is opgebouwd, gecompileerd en wordt een binair object gegenereerd, het zogenaamde Jasper-bestand (een bestand met de extensie .jasper).
Deze compilatie is gedaan om betere prestaties tijdens de uitvoering te krijgen. Deze gegenereerde Jasper-bestanden moeten samen met uw applicatie worden verzonden om de rapporten uit te voeren.
Het rapport uitvoeren
In deze fase worden de gegevens uit de applicatie verzameld en ingevuld in het samengestelde rapportformaat. Er is een klasse genaamd net.sf.jasperreports.engine.JasperFillManager die functies biedt om de gegevens in de rapporten te vullen.
De uitvoer wordt opgeslagen in een Jasper-printbestand (bestand met de extensie jrprint), waarmee het rapport kan worden afgedrukt of geëxporteerd.
Het rapport exporteren naar het gewenste formaat.
In deze laatste fase moet u het eerder gemaakte Jasper-afdrukbestand exporteren naar een willekeurig formaat met behulp van de klasse JasperExportManager. Omdat Jasper meerdere exportformaten biedt, kunnen we dezelfde invoer gebruiken om verschillende representaties van de gegevens te maken.
Hoe Jasper Reports te installeren – Omgevingsconfiguratie
Laten we nu stap voor stap bekijken hoe u de JasperReports-omgeving instelt. De onderstaande schermafbeeldingen zijn gemaakt met de 6.9-installer. De huidige community-release is 6.21.3, gepubliceerd op 23 april 2024, en de volgorde van de schermen is ongewijzigd, hoewel het versienummer in de bestandsnaam verschilt.
Stap 1) Download jasper rapporten community editie
Ga hier naartoe Link Klik op de optie 'Nu downloaden' om Jasper Reports Community Edition te installeren.
Stap 2) Selecteer Jaspersoft Studio CE
Selecteer bij de community-edities Jaspersoft Studio CE.
Stap 3) Jaspersoft Studio downloaden
Ga hier naartoe link Klik op de knop 'Downloaden' en open vervolgens het gedownloade installatiebestand voor uw besturingssysteem.
Stap 4) Klik op de knop 'Akkoord'.
Het volgende scherm verschijnt. Selecteer de knop 'Ik ga akkoord'.
Stap 5) Kies locatie
Selecteer uw installatielocatie en klik op de knop Volgende.
Stap 6) De voortgang loopt nu
Op het volgende scherm ziet u de voortgang.
Stap 7) Klik op de knop Voltooien
In het volgende scherm klikt u op de knop Voltooien.
Stap 8) De voortgang is voltooid
Het volgende scherm verschijnt in uw venster.
Stap 9) STARTEN
Klik vervolgens op de optie 'Aan de slag'.
Stap 10) Ga aan de slag met Jasper Reports studio
Het volgende scherm verschijnt en u kunt aan de slag met Jasper Reports Studio.
💡Tip: Jaspersoft Studio is een Eclipse op een applicatie gebaseerde applicatie en heeft een compatibele nodig Java De runtime is aanwezig op de machine. Als het installatieprogramma weigert te starten, controleer dan de geïnstalleerde JDK-versie voordat u opnieuw installeert.
Voorbeeld van een rapportsjabloon maken
Laten we nu leren hoe je een rapportsjabloon maakt in JasperReports.
Het rapportsjabloonbestand dat in JasperReports wordt gebruikt, is een eenvoudig XML-bestand met de extensie jrxml. Dit bestand bevat de tag jasperReport als hoofdelement. Het JasperReports-framework kan verschillende soorten gegevensbronnen verwerken.
Een rapportsjabloon wordt ontworpen en gemaakt aan de hand van de volgende stappen.
Stap 1) Het JRXML-bestand maken in Jaspersoft Studio.
- Ga naar de optie Bestand.
- Selecteer het submenu Nieuw.
- Klik op de optie Jasper Report.
Stap 2) Het gewenste sjabloon selecteren.
- Selecteer uw sjabloon, bijvoorbeeld kers.
- Klik op de knop "Volgende".
Stap 3) Een bovenliggende map selecteren.
- Selecteer de map MijnRapporten.
- Voer de bestandsnaam in, bijvoorbeeld 'Cherry Report'.
- Klik op de knop "Volgende".
Stap 4) Klik in het venster 'Gegevensbron' op de knop 'Nieuw' om een nieuwe gegevensadapter te maken.
Stap 5) Een dataadapter selecteren.
- Selecteer de gegevensadapter uit de keuzelijst. Bijvoorbeeld: "Verzameling van JavaBonen.”
- Klik op de knop "Volgende".
Stap 6) Gegevensadaptergegevens invoeren en de fabrieksklasse selecteren.
- Voer een naam in voor uw adapter.
- Selecteer de fabrieksklasse door op de knop "..." te klikken.
Stap 7) Het voorvoegsel of patroon invoeren.
- Voer het naamvoorvoegsel of patroon in.
- Klik op overeenkomende items.
- Klik op de knop "OK".
Stap 8) De fabrieksklasse definiëren en het pad naar de JAR-bestanden toevoegen.
- Voer de naam in van een statische methode in de fabrieksklasse. In dit Jasper-rapportvoorbeeld is dit createBeanCollection.
- Als uw JavaDe definitie van een bean bevat veldbeschrijvingen. Als u deze als namen in Jaspersoft Studio wilt gebruiken, vinkt u het selectievakje 'Veldbeschrijving gebruiken' aan.
- Voeg een pad toe aan uw jar-bestanden.
- Klik op de knop "Voltooien".
Stap 9) Klik op de knop "Volgende".
Stap 10) Gefeliciteerd! U heeft alle benodigde informatie voor het aanmaken van het rapport succesvol toegevoegd. Klik op de knop 'Voltooien'.
Het rapport wordt gegenereerd zoals weergegeven in het onderstaande scherm.
Het bovenstaande bestand moet worden gecompileerd naar het binaire JasperReport-formaat, wat een jasper-bestand wordt genoemd.
De interface net.sf.jasperreports.engine.design.JRCompiler, die deel uitmaakt van de JasperReports-bibliotheek, speelt een belangrijke rol bij het compileren van dit rapportsjabloonbestand.
Implementatie van deze interface kan in geschreven worden Java, JavaScript, Groovy, of een andere scripttaal.
Je kunt een JRXML-bestand compileren met behulp van de volgende twee methoden:
- Programmatische compilatie van Java code.
- Compilatie met behulp van een Apache mier taak.
Het onderstaande codefragment toont de programmatische route, waarbij één regel de sjabloon compileert en een tweede regel deze vult met een JavaBonenverzameling.
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"); } }
Output:
Report exported successfully
Inzicht in de verschillende rapportcategorieën
Een JasperReports-layout is verdeeld in horizontale secties, banden genaamd. Elke band heeft een vaste afdrukregel, en inzicht in die regels stelt een ontwerper in staat om precies te bepalen waar een waarde in het uiteindelijke document verschijnt.
Hieronder volgen de standaard rapportcategorieën die door de meeste commerciële rapportagetools worden gebruikt.
- Onderwerp
- Pagina hoofd
- Kolomkop
- Detail
- Kolomvoettekst
- Pagina ondertekst
- Voettekst van de laatste pagina
- Samenvatting
- Groepskop
- Groepsvoet
- Achtergrond
- Geen gegevens
Laten we elke rapportageband in detail bekijken.
Onderwerp
Deze balk wordt aan het begin van het rapport weergegeven. Hij kan op een eigen eerste pagina worden geplaatst door het attribuut in te stellen. isTitleNewPage="true".
Pagina hoofd
De paginakoptekst wordt aan het begin van elke pagina weergegeven. De eerste pagina wordt niet weergegeven als de titelbalk wordt gebruikt, en de laatste pagina niet als de samenvattingsbalk wordt gebruikt met de betreffende instelling. isSummaryWithPageHeaderAndFooter="false".
Kolomkop
Kolomkoppen verschijnen vóór de detailband op elke pagina.
Detail
Het detailgedeelte wordt voor elk record in de aangeleverde gegevensbron herhaald. Het is ook mogelijk om meerdere detailniveaus te hebben (1, 2, enzovoort).
Kolomvoet
Dit gedeelte verschijnt onder de detailbalk op elke pagina waar een detailbalk aanwezig is. De standaardinstelling is het einde van de pagina, maar dit kan worden gewijzigd naar onder de laatste detailbalk door het attribuut in te stellen. isFloatColumnFooter="true".
Pagina ondertekst
Dit gedeelte wordt aan het einde van elke pagina weergegeven, met uitzondering van de samenvattingsbalk, de titelbalk en de laatste niet-samenvattingsbalk.
Voettekst van de laatste pagina
Dit gedeelte verschijnt op de laatste pagina, in plaats van de normale paginavoet, wanneer er geen samenvattingssectie is opgenomen.
Samenvatting
Het samenvattingsgedeelte verschijnt pas aan het einde van het rapport op een nieuwe pagina wanneer isSummaryNewPage="true" is ingesteld, en met paginakop en -voet wanneer isSummaryWithPageHeaderAndFooter="true" is ingesteld.
Groepskoptekst
Dit gedeelte verschijnt alleen wanneer het is gedefinieerd, telkens wanneer de groepsexpressie verandert, vóór de detailband.
Groepsvoet
Dit gedeelte wordt alleen weergegeven als er een groep is gedefinieerd, telkens voordat de groepsexpressie verandert, na de detailband.
Achtergrond
Het wordt op alle pagina's weergegeven als achtergrond voor alle andere rapportagebanden.
Geen gegevens
Deze band verschijnt wanneer er geen gegevensbron is doorgegeven, of wanneer de gegevensbron leeg is. whenNoDataType="NoDataSection" is ingesteld.
Jasper versus Pentaho
Nu zullen we het verschil tussen jaspis en pentaho bespreken.
Hieronder volgen de belangrijkste verschillen tussen Jasper en Pentaho:
| Kenmerken | Jasper | pentaho |
|---|---|---|
| Rapporten | Jasper gebruikt Jaspersoft Studio voor het ontwerpen van de rapporten. | Het maakt gebruik van de Pentaho Report Designer. |
| ETL-ondersteuning | Jaspersoft gebruikt de Talend Open Studio-versie voor ETL-doeleinden. | Het gebruikt standaard Pentaho Data Integrator ETL-tool. |
| Dashboard | De dashboardfunctionaliteit is alleen beschikbaar in de Enterprise-editie van Jaspersoft. | Pentaho biedt een breed scala aan functies in hun dashboards. |
| Mobiele bedrijfsinformatie | Jaspersoft biedt betere ondersteuning voor mobiele BI. | Pentaho moet een externe tool gebruiken om de mobiele BI-ervaring te verbeteren. |
| Documentatie | Betere marketing, sites en documentatie. | Documentatieondersteuning is slecht. |
| Beste eigenschap | Gemakkelijker om te onderzoeken en te vinden wat u nodig heeft. | Biedt data mining en iPhone-integratie. |
| Betaalde versie | De betaalde versie biedt functies zoals ad hoc vraag Webgebruikersinterface en webgebruikersinterface voor het maken van dashboards. | Biedt functies zoals LDAP-integratie, SSO en auditing. |
Teams hebben al geïnvesteerd in de Java Stack kiest meestal voor Jasper, terwijl teams die veel data-integratie en rapportage nodig hebben vaak kiezen voor pentaho.
Uitdagingen bij het maken van JasperReports
Hieronder volgen enkele uitdagingen waarmee u te maken krijgt bij het maken van Jasper Reports:
- Kernwijzigingen – wanneer de bedrijfsregels veranderen of worden uitgebreid, is het noodzakelijk om de kernlogica van het rapport aan te passen.
- Ingewikkelde rapporten – subrapporten en kruistabelrapporten zijn goede voorbeelden.
- Grafieken of visuele diagrammen, bijvoorbeeld grafieken, XY-lijngrafieken, cirkeldiagrammen, staafdiagrammen, tijdreeksgrafieken en meterdiagrammen.
Nadelen van het gebruik van Jasper Reports
Hieronder volgen de nadelen van het gebruik van Jasper Reports.
- Als je eenmaal wijzigingen aanbrengt in onderdelen van het pakket en functies verwijdert, is het erg moeilijk om terug te keren naar de standaardinstellingen van het pakket.
- Het is te rigide, en het bewerken van regels en het maken van kruistabellen is een lastige klus.
- Sommige veelvoorkomende taken, zoals het specificeren van subtotalen voor een gegroepeerd rapport, zijn eenvoudiger in andere rapportontwerpprogramma's.
- Jasper vereist dat u rapporten samenstelt voordat u ze uitvoert. Dit betekent dat rapportontwikkelaars het volledige Java SDK geïnstalleerd.
- Soms wordt bij het bewerken van het rapport niet hetzelfde voorbeeld weergegeven als op internet.






















