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รฅ.

  • ๐Ÿ“Š Kernedefinition: JasperReports er en Java klassebibliotek, der gengiver data til skรฆrm, printer, PDF, HTML, XLS, RTF, CSV, XML, ODT og TXT.
  • ๐Ÿ”„ Livscyklusfaser: Fire faser kรธrer i rรฆkkefรธlge, nemlig design af JRXML, kompilering til en .jasper-fil, udfyldning med data og eksport af resultatet.
  • ๐Ÿ–ฅ๏ธ Designmiljรธ: Jaspersoft Studio Community Edition leverer den visuelle designer, og version 6.21.3 er den aktuelle community-udgivelse.
  • ๐Ÿงฉ Bรฅndstruktur: Titel, sidehoved, kolonneoverskrift, detalje, kolonnefod, sidefod og resumรฉbรฅnd styrer, hvor hvert element udskrives.
  • ๐Ÿ”Œ Datafleksibilitet: En enkelt rapport kan kombineres JavaBeans-samlinger, SQL-resultatsรฆt, XML-filer og brugerdefinerede dataadaptere.
  • โš–๏ธ Platform sammenligning: Jaspersoft er fรธrende inden for dokumentation og mobil business intelligence, mens Pentaho er fรธrende inden for dashboards og data mining.
  • โš ๏ธ Kendt begrรฆnsning: Rapporter skal udarbejdes fรธr udfรธrelse, sรฅ enhver rapportudvikler har brug for en fuldstรฆndig Java SDK installeret.

JasperReports Tutorial

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:

Livscyklus for JasperReports

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.

Installer Jasper Reports- Environment Setup

Trin 2) Vรฆlg Jaspersoft Studio CE
Vรฆlg Jaspersoft Studio CE fra community-udgaverne.

Installer Jasper Reports- Environment Setup

Trin 3) Download Jaspersoft Studio
Gรฅ til dette link og klik pรฅ knappen Download, og รฅbn derefter den downloadede installationsfil til dit operativsystem.

Installer Jasper Reports- Environment Setup

Trin 4) Klik pรฅ knappen "Accepter"
Fรธlgende skรฆrmbillede vises. Vรฆlg knappen Jeg accepterer.

Installer Jasper Reports- Environment Setup

Trin 5) Vรฆlg placering
Vรฆlg din installationsplacering, og klik pรฅ knappen Nรฆste.

Installer Jasper Reports- Environment Setup

Trin 6) Fremskridtet kรธrer nu
Du vil se fremskridtene pรฅ nรฆste skรฆrmbillede.

Installer Jasper Reports- Environment Setup

Trin 7) Klik pรฅ finish-knappen
Pรฅ det nรฆste skรฆrmbillede skal du klikke pรฅ knappen Afslut.

Installer Jasper Reports- Environment Setup

Trin 8) Fremskridtet er fuldendt
Fรธlgende skรฆrmbillede vises i dit vindue.

Installer Jasper Reports- Environment Setup

Trin 9) Kom i gang
Klik derefter pรฅ indstillingen Kom i gang.

Installer Jasper Reports- Environment Setup

Trin 10) Begynd at arbejde med Jasper Reports studio
Fรธlgende skรฆrmbillede vises, og du kan begynde at arbejde med Jasper Reports Studio.

Installer Jasper Reports- Environment Setup

๐Ÿ’ก 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.

  1. Gรฅ til indstillingen Fil.
  2. Vรฆlg undermenuen Ny.
  3. Klik pรฅ indstillingen Jasper-rapport.

Oprettelse af et eksempel pรฅ en rapportskabelon

Trin 2) Valg af den รธnskede skabelon.

  1. Vรฆlg din skabelon, for eksempel kirsebรฆr.
  2. Klik pรฅ knappen "Nรฆste".

Oprettelse af et eksempel pรฅ en rapportskabelon

Trin 3) Valg af en overordnet mappe.

  1. Vรฆlg mappen Mine Rapporter.
  2. Indtast filnavnet, for eksempel "Cherry Report."
  3. Klik pรฅ knappen "Nรฆste".

Oprettelse af et eksempel pรฅ en rapportskabelon

Trin 4) I vinduet Datakilde skal du klikke pรฅ knappen "Ny" for at oprette en ny dataadapter.

Oprettelse af et eksempel pรฅ en rapportskabelon

Trin 5) Valg af dataadapter.

  1. Vรฆlg dataadapteren fra listen. For eksempel "Samling af Javabรธnner."
  2. Klik pรฅ knappen "Nรฆste".

Oprettelse af et eksempel pรฅ en rapportskabelon

Trin 6) Indtastning af dataadapteroplysninger og valg af fabriksklasse.

  1. Indtast et navn til din adapter.
  2. Vรฆlg fabriksklassen ved at klikke pรฅ knappen โ€œโ€ฆโ€.

Oprettelse af et eksempel pรฅ en rapportskabelon

Trin 7) Indtastning af prรฆfikset eller mรธnsteret.

  1. Indtast navneprรฆfikset eller mรธnsteret.
  2. Klik pรฅ matchende varer.
  3. Klik pรฅ knappen โ€œOKโ€.

Oprettelse af et eksempel pรฅ en rapportskabelon

Trin 8) Definering af factory-klassen og tilfรธjelse af stien til jar-filer.

  1. Indtast navnet pรฅ en statisk metode i fabriksklassen. I dette eksempel pรฅ Jasper-rapporter er dette createBeanCollection.
  2. Hvis din JavaBeans-definitionen har feltbeskrivelser, og hvis du vil bruge disse som navne i Jaspersoft Studio, skal du markere afkrydsningsfeltet "Brug feltbeskrivelse".
  3. Tilfรธj en sti til dine jar-filer.
  4. Klik pรฅ knappen โ€œAfslutโ€.

Oprettelse af et eksempel pรฅ en rapportskabelon

Trin 9) Klik pรฅ knappen "Nรฆste".

Oprettelse af et eksempel pรฅ en rapportskabelon

Trin 10) Tillykke! Du har nu tilfรธjet alle nรธdvendige oplysninger om rapportoprettelse. Klik pรฅ knappen "Udfรธr".

Oprettelse af et eksempel pรฅ en rapportskabelon

Rapporten vil blive genereret som vist pรฅ skรฆrmbilledet nedenfor.

Oprettelse af et eksempel pรฅ en rapportskabelon

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.

Ofte Stillede Spรธrgsmรฅl

.jrxml-filen er den menneskeligt lรฆsbare XML-skabelon, som designere redigerer. .jasper-filen er den kompilerede binรฆre fil, der produceres ud fra den, og kun den kompilerede fil udfรธres under kรธrsel.

JasperReports Library og Jaspersoft Studio Community Edition udgives under en open source-licens og kan vรฆre integreret i kommercielle produkter. Dashboards, planlรฆgning og sikkerhedsfunktioner krรฆver den betalte udgave.

Ja. Opret en JDBC-dataadapter i Jaspersoft Studio, angiv driver-jar'en og forbindelsesstrengen, og skriv derefter forespรธrgslen i rapporten. Parametre sendes med dollar- og parentessyntaksen.

Ja. Tilfรธj jasperreports-afhรฆngigheden, placer kompilerede .jasper-filer pรฅ classpath'en, og kald JasperFillManager fra en serviceklasse. De eksporterede bytes kan streames direkte til et HTTP-svar.

AI-assistenter kan hurtigt udarbejde JRXML-skeletter og udtrykssyntaks. ร…bn altid den genererede fil i Jaspersoft Studio, da bรฅndhรธjder og elementkoordinater ofte skal korrigeres manuelt.

Den hรฅndterer de pixelperfekte driftsdokumenter, som AI-dashboards ikke producerer, sรฅsom fakturaer og kontoudtog. Modeloutput skrives til en database, og Jasper gengiver dem til distribution.

Opsummer dette indlรฆg med: