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.

  • 📊 Definiția de bază: JasperReports este o Java bibliotecă de clase care afișează date pe ecran, imprimantă, PDF, HTML, XLS, RTF, CSV, XML, ODT și TXT.
  • 🔄 Etapele ciclului de viață: Se parcurg în ordine patru etape, și anume proiectarea JRXML-ului, compilarea acestuia într-un fișier .jasper, completarea acestuia cu date și exportarea rezultatului.
  • 🖥️ Mediu de proiectare: Jaspersoft Studio Community Edition oferă designerul vizual, iar versiunea 6.21.3 este lansarea actuală pentru comunitate.
  • 🧩 Structura benzii: Titlul, antetul paginii, antetul coloanei, detaliile, subsolul coloanei, subsolul paginii și benzile de rezumat controlează locul de imprimare a fiecărui element.
  • 🔌 Flexibilitatea datelor: Un singur raport poate combina JavaColecții Beans, seturi de rezultate SQL, fișiere XML și adaptoare de date personalizate.
  • 🇧🇷 Comparație platformă: Jaspersoft este lider în domeniul documentației și al inteligenței afacerilor mobile, în timp ce Pentaho este lider în domeniul tablourilor de bord și al extragerii de date.
  • ⚠️ Limitare cunoscută: Rapoartele trebuie compilate înainte de execuție, așadar fiecare dezvoltator de rapoarte are nevoie de o documentație completă Java SDK instalat.

Tutorial JasperReports

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:

Ciclul de viață al JasperReports

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.

Instalați Jasper Reports - Environment Setup

Pas 2) Selectați Jaspersoft Studio CE
Din edițiile comunitare, selectați Jaspersoft Studio CE.

Instalați Jasper Reports - Environment Setup

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.

Instalați Jasper Reports - Environment Setup

Pas 4) Faceți clic pe butonul de acord
Va apărea următorul ecran. Selectați butonul Sunt de acord.

Instalați Jasper Reports - Environment Setup

Pas 5) Alegeți locația
Selectați locația de instalare și faceți clic pe butonul Următorul.

Instalați Jasper Reports - Environment Setup

Pas 6) Progresul merge acum
Veți vedea progresul pe următorul ecran.

Instalați Jasper Reports - Environment Setup

Pas 7) Faceți clic pe butonul de finalizare
În ecranul următor, faceți clic pe butonul de finalizare.

Instalați Jasper Reports - Environment Setup

Pas 8) Progresul este complet
Următorul ecran va apărea în fereastra dvs.

Instalați Jasper Reports - Environment Setup

Pas 9) Cumpără
Apoi, faceți clic pe opțiunea Începeți.

Instalați Jasper Reports - Environment Setup

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.

Instalați Jasper Reports - Environment Setup

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

  1. Accesați opțiunea Fișier.
  2. Selectați submeniul Nou.
  3. Faceți clic pe opțiunea Raport Jasper.

Crearea unui exemplu de șablon de raport

Pas 2) Selectarea șablonului dorit.

  1. Selectați șablonul dvs., de exemplu, cireș.
  2. Faceți clic pe butonul „Next”.

Crearea unui exemplu de șablon de raport

Pas 3) Selectarea unui folder părinte.

  1. Selectați folderul Rapoartele mele.
  2. Introduceți numele fișierului, de exemplu, „Cherry Report”.
  3. Faceți clic pe butonul „Next”.

Crearea unui exemplu de șablon de raport

Pas 4) În fereastra Sursă de date, faceți clic pe butonul „Nou” pentru a crea un nou adaptor de date.

Crearea unui exemplu de șablon de raport

Pas 5) Selectarea unui adaptor de date.

  1. Selectați adaptorul de date din caseta listă. De exemplu, „Colecție de JavaFasole.”
  2. Faceți clic pe butonul „Next”.

Crearea unui exemplu de șablon de raport

Pas 6) Introducerea detaliilor adaptorului de date și selectarea clasei fabrică.

  1. Introduceți un nume pentru adaptorul dvs.
  2. Selectați clasa fabricii făcând clic pe butonul „…”.

Crearea unui exemplu de șablon de raport

Pas 7) Introducerea prefixului sau a modelului.

  1. Introduceți prefixul sau modelul numelui.
  2. Faceți clic pe elementele care se potrivesc.
  3. Faceți clic pe butonul „OK”.

Crearea unui exemplu de șablon de raport

Pas 8) Definirea clasei factory și adăugarea căii către fișierele jar.

  1. Introduceți numele unei metode statice în clasa fabrică. În acest exemplu de rapoarte Jasper, acesta este createBeanCollection.
  2. 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”.
  3. Adăugați o cale la fișierele dvs. jar.
  4. Faceți clic pe butonul „Finalizare”.

Crearea unui exemplu de șablon de raport

Pas 9) Faceți clic pe butonul „Next”.

Crearea unui exemplu de șablon de raport

Pas 10) Felicitări! Ați adăugat cu succes toate informațiile necesare pentru crearea raportului. Faceți clic pe butonul „Finalizare”.

Crearea unui exemplu de șablon de raport

Raportul va fi generat așa cum se arată în ecranul de mai jos.

Crearea unui exemplu de șablon de raport

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.

Întrebări frecvente

Fișierul .jrxml este șablonul XML lizibil de către om, pe care designerii îl editează. Fișierul .jasper este fișierul binar compilat produs din acesta și numai fișierul compilat este executat la momentul execuției.

Biblioteca JasperReports și Jaspersoft Studio Community Edition sunt lansate sub o licență open source și pot fi integrate în produse comerciale. Tablourile de bord, programarea și funcțiile de securitate necesită ediția plătită.

Da. Creați un adaptor de date JDBC în Jaspersoft Studio, furnizați fișierul JAR al driverului și șirul de conexiune, apoi scrieți interogarea în raport. Parametrii sunt transmiși cu sintaxa dollar și bracket.

Da. Adăugați dependența jasperreports, plasați fișierele .jasper compilate pe calea de clasă și apelați JasperFillManager dintr-o clasă de servicii. Octeții exportați pot fi redați în flux direct către un răspuns HTTP.

Asistenții inteligenți artificiali pot crea rapid schelete JRXML și sintaxa expresiilor. Deschideți întotdeauna fișierul generat în Jaspersoft Studio, deoarece înălțimile benzilor și coordonatele elementelor necesită frecvent corecții manuale.

Acesta gestionează documente operaționale perfecte la nivel de pixel pe care tablourile de bord cu inteligență artificială nu le produc, cum ar fi facturile și extrasele de cont. Rezultatele modelului sunt scrise într-o bază de date, iar Jasper le redă pentru distribuire.

Rezumați această postare cu: