JasperReports-veiledning: Hva brukes Jasper Report til? Java?

โšก Smart oppsummering

JasperRapporter for Java er en rapporteringsmotor med รฅpen kildekode som gjรธr applikasjonsdata om til pikselperfekte dokumenter. Denne artikkelen forklarer rapporteringslivssyklusen, installasjon av Jaspersoft Studio, oppretting av rapportmaler, bรฅndstruktur, en Pentaho-sammenligning og de praktiske begrensningene teamene mรธter.

  • ๐Ÿ“Š Kjernedefinisjon: JasperReports er en Java klassebibliotek som gjengir data til skjerm, skriver, PDF, HTML, XLS, RTF, CSV, XML, ODT og TXT.
  • ๐Ÿ”„ Livssyklusfaser: Fire trinn kjรธres i rekkefรธlge, nemlig design av JRXML, kompilering til en .jasper-fil, fylling med data og eksport av resultatet.
  • ๐Ÿ–ฅ๏ธ Designmiljรธ: Jaspersoft Studio Community Edition leverer den visuelle designeren, og versjon 6.21.3 er den nรฅvรฆrende fellesskapsutgivelsen.
  • ๐Ÿงฉ Bandstruktur: Tittel, sideoverskrift, kolonneoverskrift, detalj, kolonnebunntekst, sidebunntekst og sammendragsbรฅnd styrer hvor hvert element skrives ut.
  • ๐Ÿ”Œ Datafleksibilitet: ร‰n enkelt rapport kan kombineres JavaBeans-samlinger, SQL-resultatsett, XML-filer og tilpassede dataadaptere.
  • ๐Ÿ‡ง๐Ÿ‡ท Plattformsammenligning: Jaspersoft leder innen dokumentasjon og mobil forretningsintelligens, mens Pentaho leder innen dashbord og datautvinning.
  • โš ๏ธ Kjent begrensning: Rapporter mรฅ kompileres fรธr utfรธrelse, sรฅ alle rapportutviklere trenger en fullstendig Java SDK installert.

Veiledning for JasperReports

Hva er JasperReports for Java?

Jasper rapporterer er et รฅpen kildekode-rapporteringsverktรธy for Java som brukes til rapportering av applikasjoner. Dette rapporteringsverktรธyet hjelper med รฅ skrive rikt innhold pรฅ skjermen, til skriveren eller til en rekke filer som HTML, PDF, XLS, RTF, CSV, XML, ODT og TXT. JasperReports kan ogsรฅ brukes til Java-aktiverte applikasjoner som Java EE eller webapplikasjoner for รฅ generere dynamisk innhold.

Tre produktnavn vises sammen i de fleste diskusjoner, og รฅ skille dem tidlig forhindrer forvirring senere pรฅ denne siden.

Navn Hva det er Hvem bruker det
JasperReports-biblioteket Ocuco Java bibliotek som kompilerer, fyller ut og eksporterer rapporter Java utviklere som legger inn rapporter i en applikasjon
Jaspersoft Studio Ocuco Eclipse basert visuell designer som produserer JRXML-filer Rapportdesignere som bygger oppsett
JasperReports-server En frittstรฅende server som lagrer, planlegger og leverer rapporter Team som distribuerer rapporter til forretningsbrukere

Denne siden fokuserer pรฅ biblioteket og Jaspersoft Studio, fordi disse to komponentene er alt som kreves for รฅ designe og kjรธre en fรธrste rapport. Merk at fellesskapsutgaven nรฅ bare dekker disse to komponentene, siden JasperReports Server ikke lenger tilbys som en fellesskapsnedlasting.

Hvorfor bruke Jasper Reports?

Her er mange grunner til รฅ bruke et Jasper-rapportverktรธy:

  • Det tilbyr ytelse og levering av rapporter til brukere.
  • Det hjelper deg รฅ representere dataene dine i tekstlig eller grafisk format.
  • Det er en frittstรฅende og innebygd rapporteringsserver for rapporteringskompilering og utfรธrelse.
  • Den tillater rollebasert tilgangskontroll til alle rapporter i depotet.
  • Et Spring Security-rammeverk er tilgjengelig for integrasjon med interne autentiseringssystemer.
  • Den tilbyr en sikker, planlagt og automatisk levert interaktiv rapporteringsmotor.
  • Du kan bygge inn rapporter i Java eller ikke-Java applikasjoner.
  • Ulike formater av rapporter kan eksporteres.
  • Det kan generere vannmerker som legges over primรฆrbildet.
  • Den tilbyr et komplett sett med SOAP, REST og webtjenester.
  • Den lar deg bruke enkeltrapportdata fra flere datakilder.

Fordi biblioteket er utgitt under LGPL-lisensen, kan det pakkes inn i kommersielle produkter uten en avgift per sete, noe som er grunnen til at mange Java teamene velger det fremfor proprietรฆre rapporteringsmotorer.

Funksjoner i Jasper Reports

Nรฅ skal vi dekke funksjonene til JasperReports.

Her er de viktigste funksjonene i Jasper Reports-verktรธyet:

  • Tilbyr fleksibel rapportoppsett pรฅ tvers av bรฅnd, kolonner og omrรฅder med fritt format.
  • Utviklere kan levere data pรฅ flere mรฅter, inkludert JavaBeans-samlinger, SQL-spรธrringer og XML-dokumenter.
  • Flere datakilder kan kombineres i รฉn rapport gjennom delrapporter og dataadaptere.
  • Vannmerker kan ogsรฅ brukes over hovedbildet.
  • Du kan generere delrapporter som er nestet i et overordnet oppsett.
  • Det hjelper deg รฅ eksportere rapporter i en rekke formater som PDF, HTML, RTF og Microsoft Excel-filer.
  • Motoren tillater at rapportdefinisjoner inkluderer diagrammer som sรธyle-, kake-, linje- og tidsserier.
  • Rapportuttrykk kan skrives i Java, Groovyeller JavaManus.

Disse funksjonene eksponeres gjennom en fast prosesseringssekvens, som neste avsnitt beskriver trinn for trinn.

Livssyklusen til JasperReports

Nรฅ skal vi lรฆre om livssyklusen til JasperReports.

Fรธlgende er den generelle flyten av livssyklusen til Jasper Reports:

Livssyklusen til JasperReports

Diagrammet ovenfor viser de fire trinnene i rekkefรธlge. Hvert trinn produserer en fil som blir input for neste trinn, og det er derfor sekvensen aldri kan reverseres.

Scene Input Produksjon Filutvidelse
Prosjektering Layoutbeslutninger Rapportmal .jrxml
kompilering .jrxml-fil Kompilert binรฆrmal .jasper
Utfรธrer .jasper-fil pluss data Utfylt rapport .jrprint
Eksporterer .jrprint-fil Sluttdokument .pdf, .html, .xls og andre

Utforming av rapporten

Dette blir det fรธrste trinnet der vi oppretter JRXML-filen. Det er et enkelt XML-dokument som definerer rapportoppsettet. Du kan utvikle denne filen ved hjelp av et hvilket som helst tekstredigeringsprogram eller en rapportdesigner.

Men hvis du bruker rapportdesigneren, kan vi visualisere rapportens layout, og den faktiske strukturen til JRXML kan ignoreres.

Utarbeidelse av rapporten

I denne livssyklusfasen kompileres JRXML som ble bygget i den fรธrste fasen, og et binรฆrt objekt kalt Jasper-filen (fil med jasper-filtypen) genereres.

Denne kompileringen er gjort for รฅ fรฅ bedre ytelse under utfรธrelse. Disse genererte Jasper-filene skal sendes sammen med applikasjonen din for รฅ kjรธre rapportene.

Utfรธrelse av rapporten

Pรฅ dette stadiet samles dataene fra applikasjonen og fylles ut i det kompilerte rapportformatet. Det er en klasse kalt net.sf.jasperreports.engine.JasperFillManager som tilbyr funksjoner for รฅ fylle ut dataene i rapportene.

Resultatet lagres i en Jasper-utskriftsfil (fil med filtypen jrprint) som kan brukes til รฅ skrive ut eller eksportere rapporten.

Eksport av rapporten til รธnsket format

I dette siste stadiet mรฅ du eksportere Jasper-utskriftsfilen som er opprettet tidligere til et hvilket som helst format ved รฅ bruke klassen JasperExportManager. Siden Jasper tilbyr flere formater for eksport, kan vi bruke den samme inngangen til รฅ lage ulike representasjoner av dataene.

Slik installerer du Jasper Reports โ€“ Miljรธoppsett

La oss nรฅ se pรฅ den trinnvise prosessen for oppsett av JasperReports-miljรธet. Skjermbildene nedenfor ble tatt med installasjonsprogrammet 6.9. Den nรฅvรฆrende fellesskapsversjonen er 6.21.3, publisert 23. april 2024, og rekkefรธlgen pรฅ skjermbildene er uendret, selv om versjonsnummeret i filnavnet er forskjellig.

Trinn 1) Last ned jasper reports community edition
Gรฅ til dette link og klikk pรฅ alternativet Last ned nรฅ for รฅ installere Jasper Reports Community-utgaven.

Installer Jasper Reports- Environment Setup

Trinn 2) Velg Jaspersoft Studio CE
Fra fellesskapsutgavene velger du Jaspersoft Studio CE.

Installer Jasper Reports- Environment Setup

Trinn 3) Last ned Jaspersoft Studio
Gรฅ til dette link og klikk pรฅ Last ned-knappen, og รฅpne deretter den nedlastede installasjonsfilen for operativsystemet ditt.

Installer Jasper Reports- Environment Setup

Trinn 4) Klikk pรฅ godta-knappen
Fรธlgende skjermbilde vil vises. Velg Jeg godtar-knappen.

Installer Jasper Reports- Environment Setup

Trinn 5) Velg beliggenhet
Velg installasjonsstedet ditt og klikk pรฅ Neste-knappen.

Installer Jasper Reports- Environment Setup

Trinn 6) Fremgangen gรฅr nรฅ
Du vil se fremdriften pรฅ neste skjermbilde.

Installer Jasper Reports- Environment Setup

Trinn 7) Klikk pรฅ fullfรธr-knappen
I neste skjermbilde klikker du pรฅ fullfรธr-knappen.

Installer Jasper Reports- Environment Setup

Trinn 8) Fremdriften er fullfรธrt
Fรธlgende skjermbilde vil vises i vinduet ditt.

Installer Jasper Reports- Environment Setup

Trinn 9) Kom i gang
Klikk deretter pรฅ alternativet Kom i gang.

Installer Jasper Reports- Environment Setup

Trinn 10) Begynn รฅ jobbe med Jasper Reports studio
Fรธlgende skjermbilde vil vises, og du kan begynne รฅ jobbe med Jasper Reports Studio.

Installer Jasper Reports- Environment Setup

๐Ÿ’ก Tips: Jaspersoft Studio er en Eclipse basert applikasjon og trenger en kompatibel Java kjรธretidsprogrammet er pรฅ maskinen. Hvis installasjonsprogrammet nekter รฅ starte, mรฅ du bekrefte den installerte JDK-versjonen fรธr du installerer pรฅ nytt.

Opprette en rapportmal Eksempel

La oss nรฅ lรฆre hvordan vi lager en rapportmal i JasperReports.

Rapportmalfilen som brukes i JasperReports er en enkel XML-fil med filtypen jrxml. Denne filen inneholder jasperReport-taggen som rotelement. JasperReports-rammeverket kan hรฅndtere forskjellige typer datakilder.

En rapportmal utformes og opprettes ved hjelp av fรธlgende trinn.

Trinn 1) Opprette JRXML-filen i Jaspersoft Studio.

  1. Gรฅ til Fil-alternativet.
  2. Velg undermenyen Ny.
  3. Klikk pรฅ alternativet Jasper-rapport.

Opprette en rapportmal Eksempel

Trinn 2) Velge รธnsket mal.

  1. Velg malen din, for eksempel kirsebรฆr.
  2. Klikk pรฅ "Neste" -knappen.

Opprette en rapportmal Eksempel

Trinn 3) Velge en overordnet mappe.

  1. Velg Mine rapporter-mappen.
  2. Skriv inn filnavnet, for eksempel "Cherry Report."
  3. Klikk pรฅ "Neste" -knappen.

Opprette en rapportmal Eksempel

Trinn 4) I datakildevinduet klikker du pรฅ ยซNyยป-knappen for รฅ opprette en ny dataadapter.

Opprette en rapportmal Eksempel

Trinn 5) Velge en dataadapter.

  1. Velg dataadapteren fra listeboksen. For eksempel, ยซSamling av Javabรธnner."
  2. Klikk pรฅ "Neste" -knappen.

Opprette en rapportmal Eksempel

Trinn 6) Legger inn dataadapterdetaljer og velger fabrikkklasse.

  1. Skriv inn et navn for adapteren.
  2. Velg fabrikkklassen ved รฅ klikke pรฅ ยซโ€ฆยป-knappen.

Opprette en rapportmal Eksempel

Trinn 7) Skrive inn prefikset eller mรธnsteret.

  1. Skriv inn navneprefikset eller mรธnsteret.
  2. Klikk pรฅ samsvarende elementer.
  3. Klikk pรฅ โ€œOKโ€ -knappen.

Opprette en rapportmal Eksempel

Trinn 8) Definere fabrikkklassen og legge til banen til jar-filer.

  1. Skriv inn navnet pรฅ en statisk metode i fabrikkklassen. I dette Jasper-rapporteksemplet er dette createBeanCollection.
  2. Hvis din JavaBeans-definisjonen har feltbeskrivelser, og hvis du vil bruke disse som navn i Jaspersoft Studio, merk av for bruk feltbeskrivelse.
  3. Legg til en bane til jar-filene dine.
  4. Klikk pรฅ ยซFullfรธrยป-knappen.

Opprette en rapportmal Eksempel

Trinn 9) Klikk pรฅ "Neste" -knappen.

Opprette en rapportmal Eksempel

Trinn 10) Gratulerer! Du har lagt til all nรธdvendig informasjon for rapportoppretting. Klikk pรฅ ยซFullfรธrยป-knappen.

Opprette en rapportmal Eksempel

Rapporten vil bli generert som vist pรฅ skjermbildet nedenfor.

Opprette en rapportmal Eksempel

Filen ovenfor krever kompilering til JasperReport binรฆrformat, som kalles jasper-filen.

Grensesnittet net.sf.jasperreports.engine.design.JRCompiler, som er en del av JasperReports-biblioteket, spiller en viktig rolle i kompileringen av denne rapportmalfilen.

Implementering av dette grensesnittet kan skrives inn Java, JavaScript, Groovy, eller et annet skriptsprรฅk.

Du kan kompilere en JRXML-fil ved hjelp av fรธlgende to metoder:

  • Programmatisk kompilering fra Java kode.
  • Kompilering ved hjelp av en Apache Ant oppgave.

Kodeutdraget nedenfor viser den programmatiske ruten, der รฉn linje kompilerer malen og en annen linje fyller 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");
    }
}

Utgang:

Report exported successfully

Forstรฅ de ulike rapportbรฅndene

Et JasperReports-layout er delt inn i horisontale seksjoner kalt bรฅnd. Hvert bรฅnd har en fast utskriftsregel, og det รฅ forstรฅ disse reglene er det som lar en designer kontrollere nรธyaktig hvor en verdi vises i det ferdige dokumentet.

Fรธlgende er standardrapportbรฅndene som brukes av de fleste kommersielle rapportgenereringsverktรธy.

  • Tittel
  • Sideoverskrift
  • Kolonneoverskrift
  • Detalj
  • Kolonnebunntekst
  • Sidebunntekst
  • Bunntekst pรฅ siste side
  • Sammendrag
  • Gruppeoverskrift
  • Gruppebunntekst
  • Bakgrunn
  • Ingen data

La oss lรฆre hvert rapporteringsbรฅnd i detalj.

Tittel

Dette bรฅndet vises i begynnelsen av rapporten. Det kan plasseres pรฅ sin egen fรธrste side ved รฅ angi attributtet isTitleNewPage="true".

Sideoverskrift

Sidetopptekstfeltet vises pรฅ begynnelsen av hver side. Det ekskluderer den fรธrste siden hvis tittelfeltet brukes, og den siste siden hvis sammendragsfeltet brukes med innstillingen isSummaryWithPageHeaderAndFooter="false".

Kolonneoverskrift

Kolonneoverskrifter vises foran detaljbรฅndet pรฅ hver side.

Detalj

Detaljdelen itereres for hver post i den oppgitte datakilden. Det er ogsรฅ tillatt รฅ ha flere detaljbรฅnd (1, 2 osv.).

Kolonnebunntekst

Denne delen vises under detaljfeltet pรฅ hver side der detaljfeltet finnes. Standardinnstillingen er slutten av siden, men dette kan endres til รฅ plasseres under det siste detaljfeltet ved รฅ angi attributtet isFloatColumnFooter="true".

Sidefot

Denne delen vises pรฅ slutten av hver side, unntatt sammendragsbรฅndet, tittelbรฅndet og det siste ikke-sammendragsbรฅndet.

Bunntekst for siste side

Denne delen vises pรฅ siste side, i stedet for den vanlige sidebunnteksten, nรฅr det ikke er gitt noe sammendragsbรฅnd.

Sammendrag

Sammendragsdelen vises bare pรฅ slutten av rapporten pรฅ en ny side nรฅr isSummaryNewPage="true" er angitt, og med sidetopptekst og -bunntekst nรฅr isSummaryWithPageHeaderAndFooter="true" er satt.

Gruppeoverskrift

Denne delen vises bare nรฅr den er definert, hver gang gruppeuttrykket endres, fรธr detaljbรฅndet.

Gruppebunntekst

Denne delen vises bare hvis en gruppe er definert, hver gang fรธr gruppeuttrykket endres, etter detaljbรฅndet.

Bakgrunn

Den vises pรฅ alle sidene som bakgrunn for alle andre rapporteringsbรฅnd.

Ingen data

Dette bรฅndet vises nรฅr ingen datakilde ble sendt, eller datakilden er tom og whenNoDataType="NoDataSection" er satt.

Jasper mot Pentaho

Nรฅ skal vi lรฆre om forskjellen mellom Jasper og Pentaho.

Her er de viktigste forskjellene mellom Jasper og Pentaho:

Parametre Jaspis Pentaho
Rapporter Jasper bruker Jaspersoft Studio til รฅ designe rapportene. Den bruker Pentaho Report Designer.
ETL-stรธtte Jaspersoft bruker Talend Open Studio-versjonen til ETL-formรฅl. Den bruker Pentaho Data Integrator som standard ETL-verktรธy.
Dashbord Dashbordfunksjonaliteten er bare tilgjengelig i Enterprise-utgaven av Jaspersoft. Pentaho tilbyr et bredt utvalg av funksjoner i dashbordene sine.
Mobil Business Intelligence Jaspersoft har bedre stรธtte for mobil BI. Pentaho mรฅ stole pรฅ et tredjepartsverktรธy for รฅ forbedre den mobile BI-opplevelsen.
Teknisk dokumentasjon Bedre markedsfรธring, nettsteder og dokumentasjon. Dokumentasjonsstรธtten er dรฅrlig.
Beste egenskap Lettere รฅ undersรธke og finne det du trenger. Tilbyr datamining og iPhone-integrasjon.
Betalt versjon Den betalte versjonen tilbyr funksjoner som ad hoc-sรธk webgrensesnitt og webgrensesnitt for oppretting av dashbord. Tilbyr funksjoner som LDAP-integrasjon, SSO og revisjon.

Lagene har allerede investert i Java stack velger vanligvis Jasper, mens team som trenger mye dataintegrasjon ved siden av rapportering ofte velger Pentaho.

Utfordringer du mรธter nรฅr du oppretter JasperReports

Her er noen utfordringer du vil mรธte nรฅr du lager Jasper-rapporter:

  • Kjerneendringer โ€“ nรฅr forretningsreglene endres eller forbedres, er det nรธdvendig รฅ endre rapportens kjernelogikk.
  • Kompliserte rapporter โ€“ delrapporter og krysstabellrapporter er gode eksempler.
  • Diagramrapporter eller visuelle diagrammer, for eksempel graf-, XY-linje-, sektor-, sรธyle-, tidsserie- og mรฅlediagrammer.

Ulemper ved รฅ bruke Jasper Reports

Her er ulempene med รฅ bruke Jasper Reports.

  • Nรฅr du fรธrst begynner รฅ gjรธre endringer i deler av pakken og fjerne funksjoner, er det veldig vanskelig รฅ gรฅ tilbake til standard pakkeinnstillingen.
  • Den er for rigid, og redigering av linjer og oppretting av krysstabeller er en utfordrende oppgave.
  • Noen vanlige oppgaver, som รฅ angi delsummer for en gruppert rapport, er enklere i andre rapportdesignere.
  • Jasper krever at du kompilerer rapporter fรธr du kjรธrer dem. Dette betyr at rapportutviklere mรฅ ha hele Java SDK installert.
  • Noen ganger nรฅr du redigerer rapporten, viser den ikke den samme forhรฅndsvisningen som den vises pรฅ nettet.

Spรธrsmรฅl og svar

.jrxml-filen er den menneskelig lesbare XML-malen som designere redigerer. .jasper-filen er den kompilerte binรฆrfilen som produseres fra den, og bare den kompilerte filen kjรธres under kjรธretid.

JasperReports Library og Jaspersoft Studio Community Edition er utgitt under en รฅpen kildekode-lisens og kan vรฆre innebygd i kommersielle produkter. Dashboards, planlegging og sikkerhetsfunksjoner krever den betalte utgaven.

Ja. Opprett en JDBC-dataadapter i Jaspersoft Studio, angi driver-jar-en og tilkoblingsstrengen, og skriv deretter spรธrringen i rapporten. Parametrene sendes med dollar- og parentessyntaksen.

Ja. Legg til jasperreports-avhengigheten, plasser kompilerte .jasper-filer pรฅ klassebanen, og kall JasperFillManager fra en tjenesteklasse. De eksporterte bytene kan strรธmmes direkte til et HTTP-svar.

AI-assistenter kan raskt utarbeide JRXML-skjeletter og uttrykkssyntaks. ร…pne alltid den genererte filen i Jaspersoft Studio, fordi bรฅndhรธyder og elementkoordinater ofte trenger manuell korrigering.

Den hรฅndterer de pikselperfekte driftsdokumentene som AI-dashboards ikke produserer, for eksempel fakturaer og kontoutskrifter. Modellutdata skrives til en database, og Jasper gjengir dem for distribusjon.

Oppsummer dette innlegget med: