Tutorial JasperReports: La ce servește Jasper Report Java?
⚡ Rezumat inteligent
JasperReports pentru Java este un motor de raportare open source care transformă datele aplicațiilor în documente perfecte la nivel de pixel. Acest articol explică ciclul de viață al raportării, instalarea Jaspersoft Studio, crearea șabloanelor de raportare, structura benzilor, o comparație Pentaho și limitările practice pe care le întâmpină echipele.

Pentru ce este JasperReports Java?
JasperReports este un instrument de raportare open-source pentru Java care este utilizat pentru raportarea aplicațiilor. Acest instrument de raportare ajută la scrierea de conținut bogat pe ecran, pe imprimantă sau într-o varietate de fișiere precum HTML, PDF, XLS, RTF, CSV, XML, ODT și TXT. JasperReports poate fi utilizat și pentru Java-aplicații activate cum ar fi Java EE sau aplicații web pentru a genera conținut dinamic.
În majoritatea discuțiilor apar trei nume de produse împreună, iar separarea lor timpurie previne confuziile ulterioare pe această pagină.
| Nume | Ce este | Cine îl folosește |
|---|---|---|
| Biblioteca JasperReports | Java bibliotecă care compilează, completează și exportă rapoarte | Java dezvoltatori care încorporează rapoarte într-o aplicație |
| Studio Jaspersoft | Eclipse designer vizual bazat pe care produce fișiere JRXML | Designerii de rapoarte construiesc machete |
| Server JasperReports | Un server independent care stochează, programează și livrează rapoarte | Echipe care distribuie rapoarte utilizatorilor de business |
Această pagină se concentrează pe bibliotecă și pe Jaspersoft Studio, deoarece aceste două componente sunt tot ce este necesar pentru a proiecta și rula un prim raport. Rețineți că ediția comunitară acoperă acum doar aceste două componente, deoarece JasperReports Server nu mai este oferit ca descărcare comunitară.
De ce să folosiți Jasper Reports?
Iată mai multe motive pentru a utiliza un instrument de raportare Jasper:
- Oferă performanță de generare a rapoartelor și livrare către utilizatori.
- Vă ajută să vă reprezentați datele în format textual sau grafic.
- Este un server de raportare autonom și încorporat pentru compilarea și execuția rapoartelor.
- Permite controlul accesului bazat pe roluri la toate rapoartele din depozit.
- Un framework Spring Security este disponibil pentru integrarea cu sistemele de autentificare interne.
- Oferă un motor de raportare interactiv, securizat, programat și livrat automat.
- Puteți încorpora rapoarte în Java sau non-Java aplicatii.
- Pot fi exportate diferite formate de rapoarte.
- Poate genera filigrane care sunt așezate peste imaginea primară.
- Oferă un set complet de SOAP, REST și servicii web.
- Vă permite să utilizați un singur raport de date din mai multe surse de date.
Deoarece biblioteca este lansată sub licența LGPL, aceasta poate fi inclusă în produse comerciale fără o taxă per utilizator, motiv pentru care multe Java echipele îl aleg în locul motoarelor de raportare proprietare.
Caracteristicile Jasper Reports
Acum, vom acoperi caracteristicile JasperReports.
Iată caracteristicile importante ale instrumentului Jasper Reports:
- Oferă un aspect flexibil al raportului pe benzi, coloane și regiuni cu formă liberă.
- Dezvoltatorii pot furniza date în mai multe moduri, inclusiv JavaColecții de bean-uri, interogări SQL și documente XML.
- Mai multe surse de date pot fi combinate într-un singur raport prin intermediul subrapoartelor și adaptoarelor de date.
- Filigranele pot fi aplicate și peste imaginea principală.
- Puteți genera subrapoarte imbricate într-un layout părinte.
- Vă ajută să exportați rapoarte într-o varietate de formate, cum ar fi PDF, HTML, RTF și Microsoft Fișiere Excel.
- Motorul permite ca definițiile rapoartelor să includă diagrame precum bare, diagrame circulare, diagrame liniare și serii temporale.
- Expresiile de raport pot fi scrise în Java, Groovy, JavaScenariul.
Aceste capabilități sunt expuse printr-o secvență de procesare fixă, pe care secțiunea următoare o descrie etapă cu etapă.
Ciclul de viață al JasperReports
Acum vom afla despre ciclul de viață al JasperReports.
Urmează fluxul general al ciclului de viață al rapoartelor Jasper:
Diagrama de mai sus prezintă cele patru etape în ordine. Fiecare etapă produce un fișier care devine intrarea etapei următoare, motiv pentru care secvența nu poate fi niciodată inversată.
| Etapă | Intrare | producție | Extensie fișier |
|---|---|---|---|
| Proiectare | Decizii de aspect | Șablon de raport | .jrxml |
| Compilarea | Fișier .jrxml | Șablon binar compilat | .jasp |
| executare | fișier .jasper plus date | Raport completat | .jrprint |
| Exportarea | Fișier .jrprint | Document final | .pdf, .html, .xls și altele |
Proiectarea raportului
Acesta va fi primul pas în care vom crea fișierul JRXML. Este un document XML simplu care definește aspectul raportului. Puteți dezvolta acest fișier folosind orice editor de text sau un designer de rapoarte.
Totuși, dacă utilizați instrumentul de proiectare a rapoartelor, putem vizualiza aspectul raportului, iar structura reală a JRXML poate fi ignorată.
Întocmirea raportului
În această etapă a ciclului de viață, se compilează fișierul JRXML construit în prima etapă și se generează un obiect binar numit fișierul Jasper (fișier cu extensia jasper).
Această compilare este făcută pentru a obține performanțe mai bune în timpul execuției. Aceste fișiere Jasper generate ar trebui să fie livrate împreună cu aplicația dvs. pentru a rula rapoartele.
Executarea raportului
În această etapă, datele din aplicație sunt adunate și completate în formatul de raport compilat. Există o clasă numită net.sf.jasperreports.engine.JasperFillManager care oferă funcții pentru a completa datele din rapoarte.
Rezultatul va fi stocat într-un fișier de imprimare Jasper (fișier cu extensia jrprint) care poate fi utilizat pentru imprimarea sau exportarea raportului.
Exportarea raportului în formatul dorit
În această ultimă etapă, trebuie să exportați fișierul de imprimare Jasper care a fost creat anterior în orice format folosind clasa JasperExportManager. Deoarece Jasper oferă mai multe formate de exporturi, putem folosi aceeași intrare pentru a crea diferite reprezentări ale datelor.
Cum se instalează Jasper Reports – Configurarea mediului
Acum, haideți să învățăm procesul pas cu pas pentru configurarea mediului JasperReports. Capturile de ecran de mai jos au fost realizate cu programul de instalare 6.9. Versiunea actuală pentru comunitate este 6.21.3, publicată pe 23 aprilie 2024, iar secvența ecranelor este neschimbată, deși numărul versiunii din numele fișierului diferă.
Pas 1) Descărcați ediția comunității Jasper Reports
Du-te la asta Link și faceți clic pe opțiunea Descărcați acum pentru a instala ediția Jasper Reports Community.
Pas 2) Selectați Jaspersoft Studio CE
Din edițiile comunitare, selectați Jaspersoft Studio CE.
Pas 3) Descărcați Jaspersoft Studio
Du-te la asta legătură și faceți clic pe butonul Descărcare, apoi deschideți fișierul executabil de instalare descărcat pentru sistemul dvs. de operare.
Pas 4) Faceți clic pe butonul de acord
Va apărea următorul ecran. Selectați butonul Sunt de acord.
Pas 5) Alegeți locația
Selectați locația de instalare și faceți clic pe butonul Următorul.
Pas 6) Progresul merge acum
Veți vedea progresul pe următorul ecran.
Pas 7) Faceți clic pe butonul de finalizare
În ecranul următor, faceți clic pe butonul de finalizare.
Pas 8) Progresul este complet
Următorul ecran va apărea în fereastra dvs.
Pas 9) Cumpără
Apoi, faceți clic pe opțiunea Începeți.
Pas 10) Începeți să lucrați cu studioul Jasper Reports
Va apărea următorul ecran și puteți începe să lucrați cu Jasper Reports studio.
💡 Sfat: Jaspersoft Studio este un Eclipse aplicație bazată pe și are nevoie de o compatibilitate Java Runtime prezent pe mașină. Dacă programul de instalare refuză să pornească, confirmați versiunea JDK instalată înainte de reinstalare.
Crearea unui exemplu de șablon de raport
Acum să învățăm cum să creăm un șablon de raport în JasperReports.
Fișierul șablon de raport utilizat în JasperReports este un fișier XML simplu cu extensia jrxml. Acest fișier conține eticheta jasperReport ca element rădăcină. Framework-ul JasperReports poate gestiona diferite tipuri de surse de date.
Un șablon de raport este proiectat și creat utilizând următorii pași.
Pas 1) Crearea fișierului JRXML în Jaspersoft Studio.
- Accesați opțiunea Fișier.
- Selectați submeniul Nou.
- Faceți clic pe opțiunea Raport Jasper.
Pas 2) Selectarea șablonului dorit.
- Selectați șablonul dvs., de exemplu, cireș.
- Faceți clic pe butonul „Next”.
Pas 3) Selectarea unui folder părinte.
- Selectați folderul Rapoartele mele.
- Introduceți numele fișierului, de exemplu, „Cherry Report”.
- Faceți clic pe butonul „Next”.
Pas 4) În fereastra Sursă de date, faceți clic pe butonul „Nou” pentru a crea un nou adaptor de date.
Pas 5) Selectarea unui adaptor de date.
- Selectați adaptorul de date din caseta listă. De exemplu, „Colecție de JavaFasole.”
- Faceți clic pe butonul „Next”.
Pas 6) Introducerea detaliilor adaptorului de date și selectarea clasei fabrică.
- Introduceți un nume pentru adaptorul dvs.
- Selectați clasa fabricii făcând clic pe butonul „…”.
Pas 7) Introducerea prefixului sau a modelului.
- Introduceți prefixul sau modelul numelui.
- Faceți clic pe elementele care se potrivesc.
- Faceți clic pe butonul „OK”.
Pas 8) Definirea clasei factory și adăugarea căii către fișierele jar.
- Introduceți numele unei metode statice în clasa fabrică. În acest exemplu de rapoarte Jasper, acesta este createBeanCollection.
- Dacă dvs. JavaDefiniția Beans are descrieri de câmpuri și dacă doriți să le utilizați ca nume în Jaspersoft Studio, bifați caseta de selectare „Utilizează descrierea câmpului”.
- Adăugați o cale la fișierele dvs. jar.
- Faceți clic pe butonul „Finalizare”.
Pas 9) Faceți clic pe butonul „Next”.
Pas 10) Felicitări! Ați adăugat cu succes toate informațiile necesare pentru crearea raportului. Faceți clic pe butonul „Finalizare”.
Raportul va fi generat așa cum se arată în ecranul de mai jos.
Fișierul de mai sus necesită compilare în format binar JasperReport, numit fișier jasper.
Interfața net.sf.jasperreports.engine.design.JRCompiler, care face parte din biblioteca JasperReports, joacă un rol important în compilarea acestui fișier șablon de raport.
Implementarea acestei interfețe poate fi scrisă Java, JavaScenariu, Groovy, sau orice alt limbaj de scripting.
Puteți compila un fișier JRXML folosind următoarele două metode:
- Compilare programatică din Java cod.
- Compilare folosind un Apache Ant sarcină.
Fragmentul de mai jos prezintă ruta programatică, unde o linie compilează șablonul, iar o a doua linie îl umple cu un JavaColecție de fasole.
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"); } }
ieșire:
Report exported successfully
Înțelegerea diferitelor benzi de raportare
Un layout JasperReports este împărțit în secțiuni orizontale numite benzi. Fiecare bandă are o regulă de imprimare fixă, iar înțelegerea acestor reguli permite unui designer să controleze exact unde apare o valoare în documentul finalizat.
În continuare sunt prezentate benzile standard de raportare adoptate de majoritatea instrumentelor comerciale de generare a rapoartelor.
- Titlu
- Antetul paginii
- Antetul coloanei
- Detaliu
- Subsolul coloanei
- Subsolul paginii
- Subsolul ultimei pagini
- Rezumat
- Antet de grup
- Subsol de grup
- Context
- Nu există date
Să învățăm în detaliu fiecare bandă de raportare.
Titlu
Această bandă este afișată la începutul raportului. Poate fi plasată pe prima pagină separată prin setarea atributului isTitleNewPage="true".
Antet pagină
Banda de antet a paginii este afișată la începutul fiecărei pagini. Exclude prima pagină dacă se utilizează banda de titlu și ultima pagină dacă se utilizează banda de rezumat cu setarea isSummaryWithPageHeaderAndFooter="false".
Antet de coloană
Antetele coloanelor apar înaintea benzii de detalii de pe fiecare pagină.
Detaliu
Secțiunea de detalii este iterată pentru fiecare înregistrare din sursa de date furnizată. De asemenea, este permisă existența mai multor benzi de detalii (1, 2 și așa mai departe).
Subsol de coloană
Această secțiune apare sub banda de detalii pe fiecare pagină unde este prezentă banda de detalii. Setarea implicită este sfârșitul paginii, dar aceasta poate fi schimbată pentru a se plasa sub ultima bandă de detalii prin setarea atributului isFloatColumnFooter="true".
Subsol de pagină
Această secțiune va fi afișată la sfârșitul fiecărei pagini, excluzând banda de rezumat, banda de titlu și ultima bandă fără rezumat.
Subsol ultima pagină
Această secțiune apare pe pagina finală, în locul subsolului normal al paginii, atunci când nu este specificată nicio bandă de rezumat.
Rezumat
Secțiunea de rezumat apare doar la sfârșitul raportului, pe o pagină nouă, atunci când isSummaryNewPage="true" este setat și cu antetul și subsolul paginii când isSummaryWithPageHeaderAndFooter="true" este setat.
Antet de grup
Această secțiune apare doar atunci când este definită, de fiecare dată când expresia grupului se modifică, înaintea benzii de detaliu.
Subsolul grupului
Această secțiune se afișează numai dacă este definit un grup, de fiecare dată înainte ca expresia grupului să se modifice, după banda de detalii.
Context
Este afișat pe toate paginile ca fundal pentru toate celelalte benzi de raportare.
Nu există date
Această bandă va apărea atunci când nu a fost transmisă nicio sursă de date sau sursa de date este goală și whenNoDataType="NoDataSection" este setat.
Jasper vs. Pentaho
Acum vom afla despre diferența dintre Jasper și Pentaho.
Iată principalele diferențe dintre Jasper și Pentaho:
| parametrii | Jasper | Pentaho |
|---|---|---|
| Rapoarte | Jasper folosește Jaspersoft Studio pentru proiectarea rapoartelor. | Folosește Pentaho Report Designer. |
| Suport ETL | Jaspersoft folosește versiunea Talend Open Studio în scopuri ETL. | Utilizează Pentaho Data Integrator ca implicit instrument ETL. |
| Panou | Funcționalitatea tabloului de bord este prezentă doar în ediția Enterprise a Jaspersoft. | Pentaho oferă o gamă largă de funcționalități în tablourile de bord. |
| Mobile Business Intelligence | Jaspersoft are un suport BI mobil mai bun. | Pentaho trebuie să se bazeze pe un instrument terț pentru a îmbunătăți experiența BI mobilă. |
| Documentație | Marketing, site-uri și documentație mai bune. | Suportul documentației este slab. |
| Cea mai bună caracteristică | Mai ușor să cercetezi și să găsești ceea ce ai nevoie. | Oferă data mining și integrare cu iPhone. |
| Versiunea plătită | Versiunea cu plată oferă funcții precum interogare ad-hoc interfață web și interfață web pentru crearea tablourilor de bord. | Oferă funcții precum integrare LDAP, SSO și auditare. |
Echipele au investit deja în Java echipele care au nevoie de o integrare complexă a datelor, alături de raportare, aleg adesea Jasper Pentaho.
Provocări cu care se confruntă la crearea JasperReports
Iată câteva provocări cu care vă veți confrunta la crearea rapoartelor Jasper:
- Modificări de bază – atunci când regulile de afaceri se modifică sau sunt îmbunătățite, este necesară modificarea logicii de bază a raportului.
- Rapoarte complicate – subrapoartele și rapoartele cu tabele încrucișate sunt exemple bune.
- Rapoarte grafice sau diagrame vizuale, de exemplu grafice, diagrame cu linii XY, diagrame circulare, diagrame cu bare, diagrame cu serii de timp și diagrame cu contor.
Dezavantajele utilizării Jasper Reports
Iată dezavantajele utilizării Jasper Reports.
- Odată ce începi să faci modificări la anumite părți ale pachetului și să elimini funcții, este foarte dificil să revii la setările implicite ale pachetului.
- Este prea rigid, iar editarea liniilor și crearea de tabulatori încrucișați este o sarcină dificilă.
- Unele sarcini comune, cum ar fi specificarea subtotalurilor pentru un raport grupat, sunt mai ușor de realizat în alte programe de designer de rapoarte.
- Jasper necesită să compilați rapoarte înainte de a le rula. Aceasta înseamnă că dezvoltatorii de rapoarte trebuie să aibă întregul Java SDK instalat.
- Uneori, atunci când editați raportul, acesta nu afișează aceeași previzualizare ca cea afișată pe web.






















