JasperReports-handledning: Vad används Jasper Report till? Java?

⚡ Smart sammanfattning

JasperRapporterar för Java är en rapporteringsmotor med öppen källkod som omvandlar applikationsdata till pixelperfekta dokument. Den här artikeln förklarar rapporteringslivscykeln, installationen av Jaspersoft Studio, skapandet av rapportmallar, bandstrukturen, en Pentaho-jämförelse och de praktiska begränsningar som team stöter på.

  • 📊 Kärndefinition: JasperReports är en Java klassbibliotek som renderar data till skärm, skrivare, PDF, HTML, XLS, RTF, CSV, XML, ODT och TXT.
  • 🔄 Livscykelstadier: Fyra steg sker i ordning, nämligen att designa JRXML, kompilera den till en .jasper-fil, fylla den med data och exportera resultatet.
  • 🖥️ Designmiljö: Jaspersoft Studio Community Edition tillhandahåller den visuella designern, och version 6.21.3 är den nuvarande community-utgåvan.
  • 🧩 Bandstruktur: Titel, sidhuvud, kolumnrubrik, detalj, kolumnsfot, sidfot och sammanfattningsband styr var varje element skrivs ut.
  • 🔌 Dataflexibilitet: En enda rapport kan kombineras JavaBeans-samlingar, SQL-resultatuppsättningar, XML-filer och anpassade dataadaptrar.
  • ⚖️ Plattformsjämförelse: Jaspersoft leder inom dokumentation och mobil business intelligence, medan Pentaho leder inom dashboards och data mining.
  • ⚠️ Känd begränsning: Rapporter måste sammanställas innan de körs, så varje rapportutvecklare behöver en fullständig Java SDK installerat.

Handledning för JasperReports

Vad är JasperReports för Java?

Jasper är ett rapporteringsverktyg med öppen källkod för Java som används för rapportering av applikationer. Detta rapporteringsverktyg hjälper till att skriva rikt innehåll på skärmen, till skrivaren eller till en mängd olika filer som HTML, PDF, XLS, RTF, CSV, XML, ODT och TXT. JasperReports kan också användas för Java-aktiverade applikationer som Java EE eller webbapplikationer för att generera dynamiskt innehåll.

Tre produktnamn förekommer tillsammans i de flesta diskussioner, och att separera dem tidigt förhindrar förvirring senare på den här sidan.

Namn Vad det är Vem använder den
JasperReports-biblioteket Ocuco-landskapet Java bibliotek som sammanställer, fyller i och exporterar rapporter Java utvecklare som bäddar in rapporter i en applikation
Jaspersoft Studio Ocuco-landskapet Eclipse baserad visuell designer som producerar JRXML-filer Rapportdesigners byggnadslayouter
JasperReports Server En fristående server som lagrar, schemalägger och levererar rapporter Team som distribuerar rapporter till affärsanvändare

Den här sidan fokuserar på biblioteket och Jaspersoft Studio, eftersom dessa två komponenter är allt som krävs för att designa och köra en första rapport. Observera att community-utgåvan nu endast täcker dessa två komponenter, eftersom JasperReports Server inte längre erbjuds som en community-nedladdning.

Varför använda Jasper Reports?

Här är många anledningar till att använda ett Jasper-rapportverktyg:

  • Det erbjuder rapportgenereringsprestanda och leverans till användare.
  • Det hjälper dig att representera dina data i text- eller grafiskt format.
  • Det är en fristående och inbäddad rapporteringsserver för rapporteringskompilering och exekvering.
  • Det tillåter rollbaserad åtkomstkontroll till alla rapporter i arkivet.
  • Ett Spring Security-ramverk finns tillgängligt för integration med interna autentiseringssystem.
  • Den erbjuder en säker, schemalagd och automatiskt levererad interaktiv rapporteringsmotor.
  • Du kan bädda in rapporter i Java eller icke-Java tillämpningar.
  • Olika format av rapporter kan exporteras.
  • Det kan generera vattenstämplar som läggs över den primära bilden.
  • Den erbjuder en komplett uppsättning av TVÅL, REST och webbtjänster.
  • Det låter dig använda enstaka rapportdata från flera datakällor.

Eftersom biblioteket släpps under LGPL-licensen kan det paketeras inuti kommersiella produkter utan en avgift per plats, vilket är anledningen till att många Java team väljer det framför proprietära rapporteringsmotorer.

Funktioner i Jasper Reports

Nu ska vi gå igenom funktionerna i JasperReports.

Här är de viktiga funktionerna i Jasper Reports-verktyget:

  • Erbjuder flexibel rapportlayout över band, kolumner och friformatsområden.
  • Utvecklare kan tillhandahålla data på flera sätt, inklusive JavaBeans-samlingar, SQL-frågor och XML-dokument.
  • Flera datakällor kan kombineras i en enda rapport via delrapporter och dataadaptrar.
  • Vattenstämplar kan också appliceras över huvudbilden.
  • Du kan generera delrapporter som är kapslade i en överordnad layout.
  • Det hjälper dig att exportera rapporter i en mängd olika format som PDF, HTML, RTF och Microsoft Excel-filer.
  • Motorn tillåter rapportdefinitioner att inkludera diagram som stapel-, cirkel-, linje- och tidsseriediagram.
  • Rapportuttryck kan skrivas i Java, Groovy, eller JavaManus.

Dessa funktioner exponeras genom en fast bearbetningssekvens, som nästa avsnitt beskriver steg för steg.

JasperReports livscykel

Nu ska vi lära oss om JasperReports livscykel.

Följande är det allmänna flödet av livscykeln för Jasper Reports:

JasperReports livscykel

Diagrammet ovan visar de fyra stegen i ordning. Varje steg producerar en fil som blir indata för nästa steg, vilket är anledningen till att sekvensen aldrig kan reverseras.

Etapp Ingång Produktion Filförlängning
Utforma Layoutbeslut Rapportmall .jrxml
sammanställa .jrxml-fil Kompilerad binär mall .jaspis
exekvera .jasper-fil plus data Ifylld rapport .jrprint
Exportera .jrprint-fil Slutdokument .pdf, .html, .xls och andra

Utformning av rapporten

Detta är det första steget där vi skapar JRXML-filen. Det är ett enkelt XML-dokument som definierar rapportlayouten. Du kan utveckla den här filen med hjälp av valfri textredigerare eller en rapportdesigner.

Men om du använder rapportdesignern kan vi visualisera rapportens layout, och den verkliga strukturen i JRXML kan ignoreras.

Sammanställning av rapporten

I detta livscykelstadium kompileras JRXML som byggdes i det första steget, och ett binärt objekt som kallas Jasper-filen (fil med jasper-ändelsen) genereras.

Denna sammanställning är gjord för att få bättre prestanda under körning. Dessa genererade Jasper-filer ska skickas tillsammans med din applikation för att köra rapporterna.

Utföra rapporten

I detta skede samlas data från applikationen och fylls i i det sammanställda rapportformatet. Det finns en klass som heter net.sf.jasperreports.engine.JasperFillManager som erbjuder funktioner för att fylla i data i rapporterna.

Utdata lagras i en Jasper-utskriftsfil (fil med tillägget jrprint) som kan användas för att skriva ut eller exportera rapporten.

Exportera rapporten till önskat format

I det sista steget måste du exportera Jasper-utskriftsfilen som skapats tidigare till valfritt format med klassen JasperExportManager. Eftersom Jasper erbjuder flera exportformat kan vi använda samma input för att skapa olika representationer av data.

Så här installerar du Jasper Reports – Miljöinställningar

Nu ska vi se steg-för-steg-processen för att konfigurera JasperReports-miljön. Skärmdumparna nedan togs med installationsprogrammet 6.9. Den nuvarande community-versionen är 6.21.3, publicerad den 23 april 2024, och skärmsekvensen är oförändrad, även om versionsnumret i filnamnet skiljer sig åt.

Steg 1) Ladda ner jasper reports community edition
Gå till det här Länk och klicka på alternativet Ladda ner nu för att installera Jasper Reports Community-utgåvan.

Installera Jasper Reports- Environment Setup

Steg 2) Välj Jaspersoft Studio CE
Från community-utgåvorna väljer du Jaspersoft Studio CE.

Installera Jasper Reports- Environment Setup

Steg 3) Ladda ner Jaspersoft Studio
Gå till det här länk och klicka på knappen Ladda ner. Öppna sedan den nedladdade installationsfilen för ditt operativsystem.

Installera Jasper Reports- Environment Setup

Steg 4) Klicka på knappen godkänn
Följande skärm visas. Välj knappen Jag godkänner.

Installera Jasper Reports- Environment Setup

Steg 5) Välj plats
Välj din installationsplats och klicka på knappen Nästa.

Installera Jasper Reports- Environment Setup

Steg 6) Framsteg pågår nu
Du kommer att se framstegen på nästa skärm.

Installera Jasper Reports- Environment Setup

Steg 7) Klicka på slutför-knappen
På nästa skärm klickar du på slutför-knappen.

Installera Jasper Reports- Environment Setup

Steg 8) Framstegen är klara
Följande skärm kommer att visas i ditt fönster.

Installera Jasper Reports- Environment Setup

Steg 9) Kom igång
Klicka sedan på alternativet Kom igång.

Installera Jasper Reports- Environment Setup

Steg 10) Börja arbeta med Jasper Reports studio
Följande skärm visas och du kan börja arbeta med Jasper Reports Studio.

Installera Jasper Reports- Environment Setup

💡 Tips: Jaspersoft Studio är en Eclipse baserad applikation och behöver en kompatibel Java körningstid finns på maskinen. Om installationsprogrammet vägrar att starta, bekräfta den installerade JDK-versionen innan du installerar om.

Skapa en rapportmall Exempel

Nu ska vi lära oss hur man skapar en rapportmall i JasperReports.

Rapportmallfilen som används i JasperReports är en enkel XML-fil med tillägget jrxml. Denna fil innehåller jasperReport-taggen som rotelement. JasperReports-ramverket kan hantera olika typer av datakällor.

En rapportmall utformas och skapas med hjälp av följande steg.

Steg 1) Skapar JRXML-filen i Jaspersoft Studio.

  1. Gå till alternativet Fil.
  2. Välj undermenyn Ny.
  3. Klicka på alternativet Jasper-rapport.

Skapa en rapportmall Exempel

Steg 2) Välj önskad mall.

  1. Välj din mall, till exempel körsbär.
  2. Klicka på "Nästa" -knappen.

Skapa en rapportmall Exempel

Steg 3) Välja en överordnad mapp.

  1. Välj mappen Mina Rapporter.
  2. Ange filnamnet, till exempel "Cherry Report."
  3. Klicka på "Nästa" -knappen.

Skapa en rapportmall Exempel

Steg 4) I fönstret Datakälla klickar du på knappen "Ny" för att skapa en ny dataadapter.

Skapa en rapportmall Exempel

Steg 5) Välja en dataadapter.

  1. Välj dataadaptern från listrutan. Till exempel, "Samling av JavaBönor."
  2. Klicka på "Nästa" -knappen.

Skapa en rapportmall Exempel

Steg 6) Ange dataadapteruppgifter och välja fabriksklass.

  1. Ange ett namn för din adapter.
  2. Välj fabriksklassen genom att klicka på knappen “…”.

Skapa en rapportmall Exempel

Steg 7) Ange prefixet eller mönstret.

  1. Ange namnprefixet eller mönstret.
  2. Klicka på matchande objekt.
  3. Klicka på "OK" -knappen.

Skapa en rapportmall Exempel

Steg 8) Definiera factory-klassen och lägga till sökvägen till jar-filer.

  1. Ange namnet på en statisk metod i fabriksklassen. I detta Jasper-rapportexempel är detta createBeanCollection.
  2. Om din JavaBeans-definitionen har fältbeskrivningar, och om du vill använda dessa som namn i Jaspersoft Studio, markera kryssrutan använd fältbeskrivning.
  3. Lägg till en sökväg till dina jar-filer.
  4. Klicka på knappen "Slutför".

Skapa en rapportmall Exempel

Steg 9) Klicka på "Nästa" -knappen.

Skapa en rapportmall Exempel

Steg 10) Grattis! Du har lagt till all nödvändig information för att skapa rapporten. Klicka på knappen "Slutför".

Skapa en rapportmall Exempel

Rapporten kommer att genereras enligt skärmen nedan.

Skapa en rapportmall Exempel

Ovanstående fil kräver kompilering till JasperReport binärformat, vilket kallas jasper-filen.

Gränssnittet net.sf.jasperreports.engine.design.JRCompiler, som är en del av JasperReports-biblioteket, spelar en viktig roll i kompileringen av denna rapportmallfil.

Implementering av detta gränssnitt kan skrivas in Java, JavaScript, Groovy, eller något annat skriptspråk.

Du kan kompilera en JRXML-fil med följande två metoder:

  • Programmatisk kompilering från Java koda.
  • Sammanställning med hjälp av en Apache Ant uppgift.

Utdraget nedan visar den programmatiska rutten, där en rad kompilerar mallen och en andra rad fyller den med en JavaBönsamling.

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");
    }
}

Produktion:

Report exported successfully

Förstå de olika rapportbanden

En JasperReports-layout är indelad i horisontella sektioner som kallas band. Varje band har en fast utskriftsregel, och att förstå dessa regler är det som gör det möjligt för en designer att kontrollera exakt var ett värde visas i det färdiga dokumentet.

Följande är standardrapportbanden som används av de flesta kommersiella rapportgenereringsverktyg.

  • Titel
  • Sidhuvud
  • Kolumnhuvud
  • Detalj
  • Kolumnsidfot
  • Sidfot
  • Sidfot på sista sidan
  • Sammanfattning
  • Grupprubrik
  • Gruppens sidfot
  • Bakgrund
  • Inga data

Låt oss lära oss varje rapporteringsband i detalj.

Titel

Detta band visas i början av rapporten. Det kan placeras på en egen förstasida genom att ange attributet isTitleNewPage="true".

Sidhuvud

Sidhuvudsbandet visas i början av varje sida. Det exkluderar den första sidan om titelbandet används, och den sista sidan om sammanfattningsbandet används med inställningen isSummaryWithPageHeaderAndFooter="false".

Kolumnrubrik

Kolumnrubriker visas före detaljbandet på varje sida.

Detalj

Detaljavsnittet itereras för varje post i den angivna datakällan. Det är också tillåtet att ha flera detaljband (1, 2 och så vidare).

Kolumnsfot

Det här avsnittet visas under detaljbandet på varje sida där detaljbandet finns. Standardinställningen är slutet av sidan, men det kan ändras så att det hamnar under det sista detaljbandet genom att ställa in attributet isFloatColumnFooter="true".

Sidfot

Det här avsnittet visas i slutet av varje sida, exklusive sammanfattningsbandet, titelbandet och det sista bandet som inte är sammanfattningsband.

Sidfot på sista sidan

Det här avsnittet visas på sista sidan, i stället för den vanliga sidfoten, när inget sammanfattningsband anges.

Sammanfattning

Sammanfattningsavsnittet visas bara i slutet av rapporten på en ny sida när isSummaryNewPage="true" är inställt, och med sidhuvud och sidfot när isSummaryWithPageHeaderAndFooter="true" är inställd.

Grupprubrik

Det här avsnittet visas bara när det är definierat, varje gång grupputtrycket ändras, före detaljbandet.

Gruppens sidfot

Det här avsnittet visas endast om en grupp är definierad, varje gång innan grupputtrycket ändras, efter detaljbandet.

Bakgrund

Den visas på alla sidor som bakgrund till alla andra rapporteringsband.

Inga data

Detta band visas när ingen datakälla har skickats, eller när datakällan är tom och whenNoDataType="NoDataSection" är inställd.

Jasper mot Pentaho

Nu ska vi lära oss om skillnaden mellan Jasper och Pentaho.

Här är de största skillnaderna mellan Jasper och Pentaho:

Driftparametrar Jaspis Pentaho
Rapport Jasper använder Jaspersoft Studio för att utforma rapporterna. Den använder Pentaho Report Designer.
ETL-stöd Jaspersoft använder Talend Open Studio-versionen för ETL-ändamål. Den använder Pentaho Data Integrator som standard ETL-verktyg.
Dashboard Instrumentpanelsfunktionaliteten finns endast i Enterprise-utgåvan av Jaspersoft. Pentaho erbjuder ett brett utbud av funktioner i sina instrumentpaneler.
Mobil Business Intelligence Jaspersoft har bättre stöd för mobil BI. Pentaho behöver förlita sig på ett tredjepartsverktyg för att förbättra den mobila BI-upplevelsen.
Dokumentation Bättre marknadsföring, webbplatser och dokumentation. Dokumentationsstödet är dåligt.
Bästa egenskapen Lättare att undersöka och hitta det du behöver. Erbjuder datautvinning och iPhone-integration.
Betald version Den betalda versionen erbjuder funktioner som ad hoc-fråga webbgränssnitt och webbgränssnitt för att skapa dashboards. Erbjuder funktioner som LDAP-integration, SSO och granskning.

Lagen har redan investerat i Java stack väljer vanligtvis Jasper, medan team som behöver omfattande dataintegration vid sidan av rapportering ofta väljer Pentaho.

Utmaningar när du skapade JasperReports

Här är några utmaningar du kommer att stöta på när du skapar Jasper-rapporter:

  • Kärnändringar – när affärsreglerna ändras eller förbättras krävs det att rapportens kärnlogik ändras.
  • Komplicerade rapporter – delrapporter och korsrapporter är bra exempel.
  • Diagramrapporter eller visuella diagram, till exempel graf-, XY-linje-, cirkel-, stapel-, tidsserie- och mätardiagram.

Nackdelar med att använda Jasper Reports

Här är nackdelarna med att använda Jasper Reports.

  • När du väl börjar göra ändringar i delar av paketet och ta bort funktioner är det mycket svårt att återgå till standardinställningarna för paketet.
  • Den är för stel, och redigering av linjer och skapandet av korsflikar är en utmanande uppgift.
  • Vissa vanliga uppgifter, som att ange delsummor för en grupperad rapport, är enklare i andra rapportdesigners.
  • Jasper kräver att du sammanställer rapporter innan du kör dem. Det innebär att rapportutvecklare måste ha hela Java SDK installerat.
  • Ibland när du redigerar rapporten visar den inte samma förhandsgranskning som den visas på webben.

Vanliga frågor

.jrxml-filen är den mänskligt läsbara XML-mallen som konstruktörer redigerar. .jasper-filen är den kompilerade binärfilen som produceras från den, och endast den kompilerade filen körs vid körning.

JasperReports Library och Jaspersoft Studio Community Edition släpps under en öppen källkodslicens och kan bäddas in i kommersiella produkter. Dashboards, schemaläggning och säkerhetsfunktioner kräver den betalda versionen.

Ja. Skapa en JDBC-dataadapter i Jaspersoft Studio, ange drivrutins-jar-filen och anslutningssträngen och skriv sedan frågan inuti rapporten. Parametrar skickas med syntaxen dollar och klammerparentes.

Ja. Lägg till jasperreports-beroendet, placera kompilerade .jasper-filer på klassvägen och anropa JasperFillManager från en serviceklass. De exporterade byten kan strömmas direkt till ett HTTP-svar.

AI-assistenter kan snabbt utarbeta JRXML-skelett och uttryckssyntax. Öppna alltid den genererade filen i Jaspersoft Studio, eftersom bandhöjder och elementkoordinater ofta behöver korrigeras manuellt.

Den hanterar de pixelperfekta operativa dokument som AI-dashboards inte producerar, såsom fakturor och kontoutdrag. Modellutdata skrivs till en databas, och Jasper renderar dem för distribution.

Sammanfatta detta inlägg med: