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.

  • 📊 Kerndefinitie: JasperReports is een Java Een klassenbibliotheek die gegevens weergeeft op het scherm, de printer, in PDF-, HTML-, XLS-, RTF-, CSV-, XML-, ODT- en TXT-formaat.
  • 🔄 Levenscyclusfasen: Het proces bestaat uit vier stappen die in deze volgorde worden uitgevoerd: het ontwerpen van het JRXML-bestand, het compileren ervan naar een .jasper-bestand, het vullen ervan met gegevens en het exporteren van het resultaat.
  • Ontwerpomgeving: Jaspersoft Studio Community Edition biedt de visuele ontwerper, en versie 6.21.3 is de huidige community-release.
  • 🧩 Bandstructuur: De titel, paginakop, kolomkop, detail, kolomvoet, paginavoet en samenvattingsbalk bepalen waar elk element wordt afgedrukt.
  • ???? Gegevensflexibiliteit: Een enkel rapport kan de volgende elementen combineren: JavaBean-verzamelingen, SQL-resultaatsets, XML-bestanden en aangepaste data-adapters.
  • Platformvergelijking: Jaspersoft is toonaangevend op het gebied van documentatie en mobiele business intelligence, terwijl Pentaho de leiding heeft in dashboards en data mining.
  • ⚠️ Bekende beperking: Rapporten moeten worden samengesteld voordat ze kunnen worden uitgevoerd, dus elke rapportontwikkelaar heeft een volledig overzicht nodig. Java SDK geïnstalleerd.

JasperReports-zelfstudie

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:

Levenscyclus van JasperReports

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.

Installeer Jasper Reports - Omgevingsinstellingen

Stap 2) Selecteer Jaspersoft Studio CE
Selecteer bij de community-edities Jaspersoft Studio CE.

Installeer Jasper Reports - Omgevingsinstellingen

Stap 3) Jaspersoft Studio downloaden
Ga hier naartoe link Klik op de knop 'Downloaden' en open vervolgens het gedownloade installatiebestand voor uw besturingssysteem.

Installeer Jasper Reports - Omgevingsinstellingen

Stap 4) Klik op de knop 'Akkoord'.
Het volgende scherm verschijnt. Selecteer de knop 'Ik ga akkoord'.

Installeer Jasper Reports - Omgevingsinstellingen

Stap 5) Kies locatie
Selecteer uw installatielocatie en klik op de knop Volgende.

Installeer Jasper Reports - Omgevingsinstellingen

Stap 6) De voortgang loopt nu
Op het volgende scherm ziet u de voortgang.

Installeer Jasper Reports - Omgevingsinstellingen

Stap 7) Klik op de knop Voltooien
In het volgende scherm klikt u op de knop Voltooien.

Installeer Jasper Reports - Omgevingsinstellingen

Stap 8) De voortgang is voltooid
Het volgende scherm verschijnt in uw venster.

Installeer Jasper Reports - Omgevingsinstellingen

Stap 9) STARTEN
Klik vervolgens op de optie 'Aan de slag'.

Installeer Jasper Reports - Omgevingsinstellingen

Stap 10) Ga aan de slag met Jasper Reports studio
Het volgende scherm verschijnt en u kunt aan de slag met Jasper Reports Studio.

Installeer Jasper Reports - Omgevingsinstellingen

💡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.

  1. Ga naar de optie Bestand.
  2. Selecteer het submenu Nieuw.
  3. Klik op de optie Jasper Report.

Voorbeeld van een rapportsjabloon maken

Stap 2) Het gewenste sjabloon selecteren.

  1. Selecteer uw sjabloon, bijvoorbeeld kers.
  2. Klik op de knop "Volgende".

Voorbeeld van een rapportsjabloon maken

Stap 3) Een bovenliggende map selecteren.

  1. Selecteer de map MijnRapporten.
  2. Voer de bestandsnaam in, bijvoorbeeld 'Cherry Report'.
  3. Klik op de knop "Volgende".

Voorbeeld van een rapportsjabloon maken

Stap 4) Klik in het venster 'Gegevensbron' op de knop 'Nieuw' om een ​​nieuwe gegevensadapter te maken.

Voorbeeld van een rapportsjabloon maken

Stap 5) Een dataadapter selecteren.

  1. Selecteer de gegevensadapter uit de keuzelijst. Bijvoorbeeld: "Verzameling van JavaBonen.”
  2. Klik op de knop "Volgende".

Voorbeeld van een rapportsjabloon maken

Stap 6) Gegevensadaptergegevens invoeren en de fabrieksklasse selecteren.

  1. Voer een naam in voor uw adapter.
  2. Selecteer de fabrieksklasse door op de knop "..." te klikken.

Voorbeeld van een rapportsjabloon maken

Stap 7) Het voorvoegsel of patroon invoeren.

  1. Voer het naamvoorvoegsel of patroon in.
  2. Klik op overeenkomende items.
  3. Klik op de knop "OK".

Voorbeeld van een rapportsjabloon maken

Stap 8) De fabrieksklasse definiëren en het pad naar de JAR-bestanden toevoegen.

  1. Voer de naam in van een statische methode in de fabrieksklasse. In dit Jasper-rapportvoorbeeld is dit createBeanCollection.
  2. 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.
  3. Voeg een pad toe aan uw jar-bestanden.
  4. Klik op de knop "Voltooien".

Voorbeeld van een rapportsjabloon maken

Stap 9) Klik op de knop "Volgende".

Voorbeeld van een rapportsjabloon maken

Stap 10) Gefeliciteerd! U heeft alle benodigde informatie voor het aanmaken van het rapport succesvol toegevoegd. Klik op de knop 'Voltooien'.

Voorbeeld van een rapportsjabloon maken

Het rapport wordt gegenereerd zoals weergegeven in het onderstaande scherm.

Voorbeeld van een rapportsjabloon maken

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.

Veelgestelde vragen

Het .jrxml-bestand is de leesbare XML-sjabloon die ontwerpers bewerken. Het .jasper-bestand is het gecompileerde binaire bestand dat daaruit wordt gegenereerd, en alleen het gecompileerde bestand wordt tijdens de uitvoering uitgevoerd.

De JasperReports Library en Jaspersoft Studio Community Edition worden uitgebracht onder een open source-licentie en mogen worden geïntegreerd in commerciële producten. Dashboards, planningsfuncties en beveiligingsfuncties vereisen de betaalde versie.

Ja. Maak een JDBC-dataadapter aan in Jaspersoft Studio, geef het driver-JAR-bestand en de verbindingsreeks op en schrijf vervolgens de query in het rapport. Parameters worden doorgegeven met de dollartekens en accolades.

Ja. Voeg de JasperReports-afhankelijkheid toe, plaats de gecompileerde .jasper-bestanden in het classpath en roep JasperFillManager aan vanuit een serviceklasse. De geëxporteerde bytes kunnen rechtstreeks naar een HTTP-antwoord worden gestreamd.

AI-assistenten kunnen snel JRXML-skeletten en expressiesyntaxis opstellen. Open het gegenereerde bestand altijd in Jaspersoft Studio, omdat bandhoogtes en elementcoördinaten vaak handmatig moeten worden gecorrigeerd.

Het verwerkt de pixelperfecte operationele documenten die AI-dashboards niet produceren, zoals facturen en afschriften. Modeluitvoer wordt naar een database geschreven en Jasper rendert deze voor distributie.

Vat dit bericht samen met: