JasperReports-vejledning: Hvad bruges Jasper Report til? Java?
โก Smart opsummering
JasperRapporter for Java er en open source-rapporteringsmotor, der omdanner applikationsdata til pixelperfekte dokumenter. Denne artikel forklarer rapporteringslivscyklussen, installation af Jaspersoft Studio, oprettelse af rapportskabeloner, bรฅndstruktur, en Pentaho-sammenligning og de praktiske begrรฆnsninger, som teams stรธder pรฅ.

Hvad er JasperReports til Java?
Jasper Rapporter er et open source-rapporteringsvรฆrktรธj til Java der bruges til rapportering af applikationer. Dette rapporteringsvรฆrktรธj hjรฆlper med at skrive rigt indhold pรฅ skรฆrmen, pรฅ printeren eller i en rรฆkke forskellige filer som HTML, PDF, XLS, RTF, CSV, XML, ODT og TXT. JasperReports kan ogsรฅ bruges til Java-aktiverede applikationer som Java EE eller webapplikationer til at generere dynamisk indhold.
Tre produktnavne optrรฆder sammen i de fleste diskussioner, og at adskille dem tidligt forhindrer forvirring senere pรฅ denne side.
| Navn | Hvad er det | Hvem bruger det |
|---|---|---|
| JasperReports-biblioteket | Java bibliotek, der kompilerer, udfylder og eksporterer rapporter | Java Udviklere, der integrerer rapporter i en applikation |
| Jaspersoft Studio | Eclipse baseret visuel designer, der producerer JRXML-filer | Rapportdesignere om bygningslayouts |
| JasperReports Server | En separat server, der lagrer, planlรฆgger og leverer rapporter | Teams, der distribuerer rapporter til forretningsbrugere |
Denne side fokuserer pรฅ biblioteket og Jaspersoft Studio, fordi disse to komponenter er alt, hvad der krรฆves for at designe og kรธre en fรธrste rapport. Bemรฆrk, at community-udgaven nu kun dรฆkker disse to komponenter, da JasperReports Server ikke lรฆngere tilbydes som en community-download.
Hvorfor bruge Jasper Reports?
Her er mange grunde til at bruge et Jasper-rapportvรฆrktรธj:
- Det tilbyder rapportgenereringsydelse og levering til brugere.
- Det hjรฆlper dig med at reprรฆsentere dine data i tekst- eller grafisk format.
- Det er en selvstรฆndig og indlejret rapporteringsserver til rapportering kompilering og eksekvering.
- Det tillader rollebaseret adgangskontrol til alle rapporter i lageret.
- Et Spring Security-framework er tilgรฆngeligt til integration med interne autentificeringssystemer.
- Den tilbyder en sikker, planlagt og automatisk leveret interaktiv rapporteringsmotor.
- Du kan integrere rapporter i Java eller ikke-Java applikationer.
- Forskellige formater af rapporter kan eksporteres.
- Det kan generere vandmรฆrker, der lรฆgges over det primรฆre billede.
- Det tilbyder et komplet sรฆt af SOAP, REST og webtjenester.
- Det giver dig mulighed for at bruge enkelt rapportdata fra flere datakilder.
Da biblioteket er udgivet under LGPL-licensen, kan det bundles i kommercielle produkter uden et gebyr pr. seat, hvilket er grunden til, at mange Java teams vรฆlger det frem for proprietรฆre rapporteringsmotorer.
Funktioner i Jasper Reports
Nu vil vi gennemgรฅ funktionerne i JasperReports.
Her er de vigtige funktioner i Jasper Reports-vรฆrktรธjet:
- Tilbyder fleksibelt rapportlayout pรฅ tvรฆrs af bรฅnd, kolonner og omrรฅder med frit format.
- Udviklere kan levere data pรฅ flere mรฅder, herunder JavaBeans-samlinger, SQL-forespรธrgsler og XML-dokumenter.
- Flere datakilder kan kombineres i en enkelt rapport via underrapporter og dataadaptere.
- Vandmรฆrker kan ogsรฅ anvendes oven pรฅ det primรฆre billede.
- Du kan generere underrapporter, der er indlejret i et overordnet layout.
- Det hjรฆlper dig med at eksportere rapporter i en rรฆkke forskellige formater som f.eks PDF, HTML, RTF og Microsoft Excel-filer.
- Systemet tillader rapportdefinitioner at inkludere diagrammer som sรธjlediagrammer, cirkeldiagrammer, linjer og tidsserier.
- Rapportudtryk kan skrives i Java, Groovy eller JavaManuskript.
Disse funktioner eksponeres gennem en fast behandlingssekvens, som beskrives trin for trin i nรฆste afsnit.
Livscyklus for JasperReports
Nu vil vi lรฆre om livscyklussen for JasperReports.
Fรธlgende er den generelle livscyklus for Jasper Reports:
Diagrammet ovenfor viser de fire faser i rรฆkkefรธlge. Hver fase producerer en fil, der bliver input til den nรฆste fase, hvilket er grunden til, at rรฆkkefรธlgen aldrig kan vendes om.
| Stage | Input | Produktion | Filforlรฆngelse |
|---|---|---|---|
| Design | Layoutbeslutninger | Rapportskabelon | .jrxml |
| kompilering | .jrxml-fil | Kompileret binรฆr skabelon | .jasper |
| Udfรธrer | .jasper-fil plus data | Udfyldt rapport | .jrprint |
| Eksporterer | .jrprint-fil | Endeligt dokument | .pdf, .html, .xls og andre |
Design af rapporten
Dette er det fรธrste trin, hvor vi opretter JRXML-filen. Det er et simpelt XML-dokument, der definerer rapportlayoutet. Du kan udvikle denne fil ved hjรฆlp af en hvilken som helst teksteditor eller en rapportdesigner.
Men hvis du bruger rapportdesigneren, kan vi visualisere rapportens layout, og den faktiske struktur af JRXML kan ignoreres.
Udarbejdelse af rapporten
I denne livscyklusfase kompileres den JRXML, der blev bygget i den fรธrste fase, og et binรฆrt objekt kaldet Jasper-filen (fil med jasper-filtypenavnet) genereres.
Denne kompilering er lavet for at fรฅ bedre ydeevne under udfรธrelse. Disse genererede Jasper-filer skal sendes sammen med din applikation for at kรธre rapporterne.
Udfรธrelse af rapporten
I denne fase samles dataene fra applikationen og udfyldes i det kompilerede rapportformat. Der er en klasse kaldet net.sf.jasperreports.engine.JasperFillManager, som tilbyder funktioner til at udfylde dataene i rapporterne.
Outputtet gemmes i en Jasper print-fil (fil med filtypenavnet jrprint), som kan bruges til at udskrive eller eksportere rapporten.
Eksport af rapporten til det รธnskede format
I denne sidste fase skal du eksportere Jasper-udskriftsfilen, som er oprettet tidligere, til ethvert format ved hjรฆlp af klassen JasperExportManager. Da Jasper tilbyder flere eksportformater, kan vi bruge det samme input til at skabe forskellige reprรฆsentationer af dataene.
Sรฅdan installeres Jasper Reports โ Miljรธopsรฆtning
Lad os nu se den trinvise proces til opsรฆtning af JasperReports-miljรธet. Skรฆrmbillederne nedenfor blev taget med installationsprogrammet 6.9. Den nuvรฆrende community-udgivelse er 6.21.3, udgivet den 23. april 2024, og rรฆkkefรธlgen af โโskรฆrmbilleder er uรฆndret, selvom versionsnummeret i filnavnet er anderledes.
Trin 1) Download jasper reports community-udgave
Gรฅ til dette Link og klik pรฅ "Download nu" for at installere Jasper Reports Community-udgaven.
Trin 2) Vรฆlg Jaspersoft Studio CE
Vรฆlg Jaspersoft Studio CE fra community-udgaverne.
Trin 3) Download Jaspersoft Studio
Gรฅ til dette link og klik pรฅ knappen Download, og รฅbn derefter den downloadede installationsfil til dit operativsystem.
Trin 4) Klik pรฅ knappen "Accepter"
Fรธlgende skรฆrmbillede vises. Vรฆlg knappen Jeg accepterer.
Trin 5) Vรฆlg placering
Vรฆlg din installationsplacering, og klik pรฅ knappen Nรฆste.
Trin 6) Fremskridtet kรธrer nu
Du vil se fremskridtene pรฅ nรฆste skรฆrmbillede.
Trin 7) Klik pรฅ finish-knappen
Pรฅ det nรฆste skรฆrmbillede skal du klikke pรฅ knappen Afslut.
Trin 8) Fremskridtet er fuldendt
Fรธlgende skรฆrmbillede vises i dit vindue.
Trin 9) Kom i gang
Klik derefter pรฅ indstillingen Kom i gang.
Trin 10) Begynd at arbejde med Jasper Reports studio
Fรธlgende skรฆrmbillede vises, og du kan begynde at arbejde med Jasper Reports Studio.
๐ก Tip: Jaspersoft Studio er en Eclipse baseret applikation og krรฆver en kompatibel Java runtime-programmet er til stede pรฅ maskinen. Hvis installationsprogrammet nรฆgter at starte, skal du bekrรฆfte den installerede JDK-version, fรธr du geninstallerer.
Oprettelse af et eksempel pรฅ en rapportskabelon
Lad os nu lรฆre, hvordan man opretter en rapportskabelon i JasperReports.
Rapportskabelonfilen, der bruges i JasperReports, er en simpel XML-fil med filtypenavnet jrxml. Denne fil indeholder jasperReport-tagget som rodelement. JasperReports-frameworket kan hรฅndtere forskellige typer datakilder.
En rapportskabelon designes og oprettes ved hjรฆlp af fรธlgende trin.
Trin 1) Oprettelse af JRXML-filen i Jaspersoft Studio.
- Gรฅ til indstillingen Fil.
- Vรฆlg undermenuen Ny.
- Klik pรฅ indstillingen Jasper-rapport.
Trin 2) Valg af den รธnskede skabelon.
- Vรฆlg din skabelon, for eksempel kirsebรฆr.
- Klik pรฅ knappen "Nรฆste".
Trin 3) Valg af en overordnet mappe.
- Vรฆlg mappen Mine Rapporter.
- Indtast filnavnet, for eksempel "Cherry Report."
- Klik pรฅ knappen "Nรฆste".
Trin 4) I vinduet Datakilde skal du klikke pรฅ knappen "Ny" for at oprette en ny dataadapter.
Trin 5) Valg af dataadapter.
- Vรฆlg dataadapteren fra listen. For eksempel "Samling af Javabรธnner."
- Klik pรฅ knappen "Nรฆste".
Trin 6) Indtastning af dataadapteroplysninger og valg af fabriksklasse.
- Indtast et navn til din adapter.
- Vรฆlg fabriksklassen ved at klikke pรฅ knappen โโฆโ.
Trin 7) Indtastning af prรฆfikset eller mรธnsteret.
- Indtast navneprรฆfikset eller mรธnsteret.
- Klik pรฅ matchende varer.
- Klik pรฅ knappen โOKโ.
Trin 8) Definering af factory-klassen og tilfรธjelse af stien til jar-filer.
- Indtast navnet pรฅ en statisk metode i fabriksklassen. I dette eksempel pรฅ Jasper-rapporter er dette createBeanCollection.
- Hvis din JavaBeans-definitionen har feltbeskrivelser, og hvis du vil bruge disse som navne i Jaspersoft Studio, skal du markere afkrydsningsfeltet "Brug feltbeskrivelse".
- Tilfรธj en sti til dine jar-filer.
- Klik pรฅ knappen โAfslutโ.
Trin 9) Klik pรฅ knappen "Nรฆste".
Trin 10) Tillykke! Du har nu tilfรธjet alle nรธdvendige oplysninger om rapportoprettelse. Klik pรฅ knappen "Udfรธr".
Rapporten vil blive genereret som vist pรฅ skรฆrmbilledet nedenfor.
Ovenstรฅende fil krรฆver kompilering til det binรฆre format JasperReport, som kaldes jasper-filen.
Grรฆnsefladen net.sf.jasperreports.engine.design.JRCompiler, som er en del af JasperReports-biblioteket, spiller en vigtig rolle i kompileringen af โโdenne rapportskabelonfil.
Implementering af denne grรฆnseflade kan skrives ind Java, JavaScript, Groovy, eller et hvilket som helst andet scriptsprog.
Du kan kompilere en JRXML-fil ved hjรฆlp af fรธlgende to metoder:
- Programmatisk kompilering fra Java kode.
- Kompilering ved hjรฆlp af en Apache Ant opgave.
Uddraget nedenfor viser den programmatiske rute, hvor รฉn linje kompilerer skabelonen, og en anden linje udfylder den med en JavaBรธnnesamling.
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
Forstรฅelse af de forskellige rapportbรฅnd
Et JasperReports-layout er opdelt i vandrette sektioner kaldet bรฅnd. Hvert bรฅnd har en fast udskrivningsregel, og det er forstรฅelsen af โโdisse regler, der giver en designer mulighed for at kontrollere prรฆcis, hvor en vรฆrdi vises i det fรฆrdige dokument.
Fรธlgende er standardrapportbรฅndene, der anvendes af de fleste kommercielle rapportgenereringsvรฆrktรธjer.
- Emne
- Sideoverskrift
- Kolonneoverskrift
- Detalje
- Kolonnesidefod
- Sidefod
- Sidefoden pรฅ sidste side
- Resumรฉ
- Gruppeoverskrift
- Gruppefod
- Baggrund
- Ingen data
Lad os lรฆre hvert rapporteringsbรฅnd i detaljer.
Emne
Dette bรฅnd vises i starten af โโrapporten. Det kan placeres pรฅ sin egen fรธrste side ved at indstille attributten isTitleNewPage="true".
Sidehoved
Sidehovedbรฅndet vises i begyndelsen af โโhver side. Det ekskluderer den fรธrste side, hvis titelbรฅndet bruges, og den sidste side, hvis resumรฉbรฅndet bruges med indstillingen isSummaryWithPageHeaderAndFooter="false".
Kolonneoverskrift
Kolonneoverskrifter vises fรธr detaljebรฅndet pรฅ hver side.
Detalje
Detaljeafsnittet itereres for hver post i den angivne datakilde. Det er ogsรฅ tilladt at have flere detaljebรฅnd (1, 2 osv.).
Kolonnefod
Dette afsnit vises under detaljebรฅndet pรฅ hver side, hvor detaljebรฅndet er til stede. Standardindstillingen er slutningen af โโsiden, men dette kan รฆndres til at vรฆre under det sidste detaljebรฅnd ved at indstille attributten isFloatColumnFooter="true".
Sidefod
Dette afsnit vises i slutningen af โโhver side, eksklusive opsummeringsbรฅndet, titelbรฅndet og det sidste ikke-opsummeringsbรฅnd.
Sidefod pรฅ sidste side
Dette afsnit vises pรฅ den sidste side i stedet for den normale sidefod, nรฅr der ikke er angivet et resumรฉ.
Resumรฉ
Oversigtsafsnittet vises kun i slutningen af โโrapporten pรฅ en ny side, nรฅr isSummaryNewPage="true" er indstillet, og med sidehoved og sidefod nรฅr isSummaryWithPageHeaderAndFooter="true" er indstillet.
Gruppeoverskrift
Dette afsnit vises kun, nรฅr det er defineret, hver gang gruppeudtrykket รฆndres, fรธr detaljebรฅndet.
Gruppefod
Dette afsnit vises kun, hvis en gruppe er defineret, hver gang fรธr gruppeudtrykket รฆndres, efter detaljebรฅndet.
Baggrund
Den vises pรฅ alle sider som baggrund for alle andre rapporteringsbรฅnd.
Ingen data
Dette bรฅnd vises, nรฅr der ikke er blevet videregivet nogen datakilde, eller datakilden er tom, og whenNoDataType="NoDataSection" er indstillet.
Jasper vs. Pentaho
Nu vil vi lรฆre om forskellen mellem Jasper og Pentaho.
Her er de stรธrste forskelle mellem Jasper og Pentaho:
| Driftsparametre | Jasper | Pentaho |
|---|---|---|
| Rapporter | Jasper bruger Jaspersoft Studio til at designe rapporterne. | Den bruger Pentaho Report Designer. |
| ETL support | Jaspersoft bruger Talend Open Studio-versionen til ETL-formรฅl. | Den bruger Pentaho Data Integrator som standard ETL vรฆrktรธj. |
| Hovedmenu | Dashboard-funktionaliteten findes kun i Enterprise-udgaven af โโJaspersoft. | Pentaho tilbyder en bred vifte af funktioner i deres dashboards. |
| Mobil Business Intelligence | Jaspersoft har bedre mobil BI-understรธttelse. | Pentaho er nรธdt til at bruge et tredjepartsvรฆrktรธj for at forbedre den mobile BI-oplevelse. |
| Dokumentation | Bedre markedsfรธring, websteder og dokumentation. | Dokumentationsunderstรธttelsen er dรฅrlig. |
| Bedste funktion | Lettere at undersรธge og finde det, du har brug for. | Tilbyder datamining og iPhone-integration. |
| Betalt version | Den betalte version tilbyder funktioner som ad hoc-forespรธrgsel Webbrugergrรฆnseflade og webbrugergrรฆnseflade til oprettelse af dashboards. | Tilbyder funktioner som LDAP-integration, SSO og revision. |
Holdene har allerede investeret i Java stack vรฆlger normalt Jasper, mens teams, der har brug for omfattende dataintegration sammen med rapportering, ofte vรฆlger Pentaho.
Udfordringer, man stรฅr over for under oprettelsen af โโJasperReports
Her er et par udfordringer, du vil stรธde pรฅ, nรฅr du opretter Jasper Reports:
- Kerneรฆndringer โ nรฅr forretningsreglerne รฆndres eller forbedres, er det nรธdvendigt at รฆndre rapportens kernelogik.
- Komplicerede rapporter โ underrapporter og krydstabuleringsrapporter er gode eksempler.
- Diagramrapporter eller visuelle diagrammer, for eksempel graf-, XY-linje-, cirkel-, sรธjle-, tidsserie- og mรฅlerdiagrammer.
Ulemper ved at bruge Jasper Reports
Her er ulemperne ved at bruge Jasper Reports.
- Nรฅr du fรธrst begynder at foretage รฆndringer i dele af pakken og fjerne funktioner, er det meget vanskeligt at vende tilbage til standardpakkens indstilling.
- Det er for stift, og redigering af linjer og oprettelse af krydstabulaturer er en udfordrende opgave.
- Nogle almindelige opgaver, som f.eks. at angive subtotaler for en grupperet rapport, er nemmere i andre rapportdesignere.
- Jasper krรฆver, at du kompilerer rapporter, fรธr du kรธrer dem. Det betyder, at rapportudviklere skal have det hele Java SDK installeret.
- Nogle gange, nรฅr du redigerer rapporten, viser den ikke den samme forhรฅndsvisning, som den vises pรฅ nettet.






















