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

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:
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.
Steg 2) Välj Jaspersoft Studio CE
Från community-utgåvorna väljer du Jaspersoft Studio CE.
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.
Steg 4) Klicka på knappen godkänn
Följande skärm visas. Välj knappen Jag godkänner.
Steg 5) Välj plats
Välj din installationsplats och klicka på knappen Nästa.
Steg 6) Framsteg pågår nu
Du kommer att se framstegen på nästa skärm.
Steg 7) Klicka på slutför-knappen
På nästa skärm klickar du på slutför-knappen.
Steg 8) Framstegen är klara
Följande skärm kommer att visas i ditt fönster.
Steg 9) Kom igång
Klicka sedan på alternativet Kom igång.
Steg 10) Börja arbeta med Jasper Reports studio
Följande skärm visas och du kan börja arbeta med Jasper Reports Studio.
💡 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.
- Gå till alternativet Fil.
- Välj undermenyn Ny.
- Klicka på alternativet Jasper-rapport.
Steg 2) Välj önskad mall.
- Välj din mall, till exempel körsbär.
- Klicka på "Nästa" -knappen.
Steg 3) Välja en överordnad mapp.
- Välj mappen Mina Rapporter.
- Ange filnamnet, till exempel "Cherry Report."
- Klicka på "Nästa" -knappen.
Steg 4) I fönstret Datakälla klickar du på knappen "Ny" för att skapa en ny dataadapter.
Steg 5) Välja en dataadapter.
- Välj dataadaptern från listrutan. Till exempel, "Samling av JavaBönor."
- Klicka på "Nästa" -knappen.
Steg 6) Ange dataadapteruppgifter och välja fabriksklass.
- Ange ett namn för din adapter.
- Välj fabriksklassen genom att klicka på knappen “…”.
Steg 7) Ange prefixet eller mönstret.
- Ange namnprefixet eller mönstret.
- Klicka på matchande objekt.
- Klicka på "OK" -knappen.
Steg 8) Definiera factory-klassen och lägga till sökvägen till jar-filer.
- Ange namnet på en statisk metod i fabriksklassen. I detta Jasper-rapportexempel är detta createBeanCollection.
- 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.
- Lägg till en sökväg till dina jar-filer.
- Klicka på knappen "Slutför".
Steg 9) Klicka på "Nästa" -knappen.
Steg 10) Grattis! Du har lagt till all nödvändig information för att skapa rapporten. Klicka på knappen "Slutför".
Rapporten kommer att genereras enligt skärmen nedan.
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.






















