Tutorial su JasperReports: a cosa serve JasperReports? Java?

โšก Riepilogo intelligente

JasperReports per Java Jaspersoft Studio รจ un motore di reporting open source che trasforma i dati delle applicazioni in documenti di precisione al pixel. Questo articolo illustra il ciclo di vita del reporting, l'installazione di Jaspersoft Studio, la creazione di modelli di report, la struttura a bande, un confronto con Pentaho e le limitazioni pratiche che i team possono incontrare.

  • ๐Ÿ“Š Definizione di base: JasperReports รจ un Java Libreria di classi che permette di visualizzare i dati a schermo, stamparli e salvarli in formato PDF, HTML, XLS, RTF, CSV, XML, ODT e TXT.
  • ๐Ÿ”„ Fasi del ciclo di vita: Il processo si articola in quattro fasi sequenziali: progettazione del file JRXML, compilazione in un file .jasper, inserimento dei dati ed esportazione del risultato.
  • ๏ธ Ambiente di progettazione: Jaspersoft Studio Community Edition fornisce l'editor visuale e la versione 6.21.3 รจ l'attuale release della community.
  • ๐Ÿงฉ Struttura della banda: Le bande Titolo, Intestazione di pagina, Intestazione di colonna, Dettaglio, Piรจ di pagina di colonna, Piรจ di pagina e Sommario controllano la posizione di stampa di ciascun elemento.
  • ???? Flessibilitร  dei dati: Un singolo rapporto puรฒ combinare JavaRaccolte di bean, set di risultati SQL, file XML e adattatori di dati personalizzati.
  • ๏ธ Confronto tra piattaforme: Jaspersoft รจ leader nella documentazione e nella business intelligence per dispositivi mobili, mentre Pentaho รจ leader nei dashboard e nel data mining.
  • โš ๏ธ Limitazioni note: I report devono essere compilati prima dell'esecuzione, quindi ogni sviluppatore di report ha bisogno di un completo Java SDK installato.

Tutorial su JasperReports

A cosa serve JasperReports Java?

Jasper Reports รจ uno strumento di reporting open source per Java che viene utilizzato per la creazione di report sulle applicazioni. Questo strumento di reporting aiuta a scrivere contenuti multimediali sullo schermo, sulla stampante o in una varietร  di file come HTML, PDF, XLS, RTF, CSV, XML, ODT e TXT. JasperReports puรฒ essere utilizzato anche per Java-applicazioni abilitate come Java EE o applicazioni web per generare contenuti dinamici.

Nella maggior parte delle discussioni compaiono insieme tre nomi di prodotti, e separarli fin da subito evita confusione in seguito in questa pagina.

Nome Cos'รจ Chi lo usa
Libreria JasperReports Migliori Java libreria che compila, riempie ed esporta report Java sviluppatori che integrano report in un'applicazione
Studio Jaspersoft Migliori Eclipse progettista visivo basato su che produce file JRXML Progettisti di report che realizzano layout
Server Jasper Report Un server autonomo che archivia, pianifica e distribuisce i report. Team che distribuiscono report agli utenti aziendali

Questa pagina si concentra sulla libreria e su Jaspersoft Studio, poichรฉ questi due componenti sono tutto ciรฒ che serve per progettare ed eseguire un primo report. Si noti che l'edizione Community ora include solo questi due componenti, dato che JasperReports Server non รจ piรน disponibile per il download nella versione Community.

Perchรฉ utilizzare Jasper Reports?

Ecco molti motivi per utilizzare uno strumento di reporting Jasper:

  • Offre prestazioni di generazione e distribuzione di report agli utenti.
  • Ti aiuta a rappresentare i tuoi dati in formato testuale o grafico.
  • รˆ un server di reporting autonomo e incorporato per la compilazione e l'esecuzione di report.
  • Consente il controllo dell'accesso basato sui ruoli a tutti i report nel repository.
  • รˆ disponibile un framework Spring Security per l'integrazione con i sistemi di autenticazione interni.
  • Offre un motore di reporting interattivo sicuro, programmato e con consegna automatica.
  • Puoi incorporare report in Java o nonJava applicazioni.
  • รˆ possibile esportare vari formati di report.
  • Puรฒ generare filigrane sovrapposte all'immagine primaria.
  • Offre un set completo di SOAP, REST e servizi Web.
  • Consente di utilizzare dati di report singoli provenienti da piรน origini dati.

Poichรฉ la libreria รจ rilasciata sotto licenza LGPL, puรฒ essere inclusa in prodotti commerciali senza un costo per postazione, motivo per cui molti Java I team lo preferiscono ai sistemi di reporting proprietari.

Caratteristiche di Jasper Report

Ora esamineremo le funzionalitร  di JasperReports.

Ecco le caratteristiche principali dello strumento Jasper Reports:

  • Offre un layout di report flessibile che si articola su fasce, colonne e aree a forma libera.
  • Gli sviluppatori possono fornire dati in diversi modi, tra cui: JavaCollezioni di bean, query SQL e documenti XML.
  • รˆ possibile combinare piรน fonti di dati all'interno di un singolo report tramite sottoreport e adattatori di dati.
  • รˆ possibile applicare filigrane anche sull'immagine principale.
  • รˆ possibile generare sottoreport annidati all'interno di un layout principale.
  • Ti aiuta a esportare report in una varietร  di formati come PDF, HTML, RTF e Microsoft File Excel.
  • Il motore consente di includere nelle definizioni dei report grafici come istogrammi, grafici a torta, grafici a linee e serie temporali.
  • Le espressioni di report possono essere scritte in Java, Groovy, o JavaScript.

Queste funzionalitร  vengono rese disponibili attraverso una sequenza di elaborazione predefinita, che la sezione successiva descrive fase per fase.

Ciclo di vita di JasperReports

Ora analizzeremo il ciclo di vita di JasperReports.

Di seguito viene illustrato il flusso generale del ciclo di vita di Jasper Reports:

Ciclo di vita di JasperReports

Il diagramma qui sopra mostra le quattro fasi in sequenza. Ogni fase produce un file che diventa l'input della fase successiva, motivo per cui la sequenza non puรฒ mai essere invertita.

Stage Ingresso Uscita Estensione del file
Progettazione Decisioni di layout Modello di rapporto .jrxml
compilazione file .jrxml Modello binario compilato .diaspro
Esecuzione file .jasper piรน dati Rapporto compilato .jrprint
Esportazione file .jrprint Documento finale .pdf, .html, .xls e altri

Progettazione del report

Questo sarร  il primo passaggio in cui creeremo il file JRXML. Si tratta di un semplice documento XML che definisce il layout del report. รˆ possibile sviluppare questo file utilizzando qualsiasi editor di testo o un programma di progettazione di report.

Tuttavia, se si utilizza lo strumento di progettazione dei report, รจ possibile visualizzare il layout del report, ignorando la struttura effettiva del file JRXML.

Compilazione del rapporto

In questa fase del ciclo di vita, il file JRXML creato nella prima fase viene compilato e viene generato un oggetto binario chiamato file Jasper (un file con estensione .jasper).

Questa compilazione viene eseguita per ottenere prestazioni migliori durante l'esecuzione. Questi file Jasper generati devono essere spediti insieme all'applicazione per eseguire i report.

Esecuzione del report

In questa fase, i dati dell'applicazione vengono raccolti e compilati nel formato del report compilato. Esiste una classe chiamata net.sf.jasperreports.engine.JasperFillManager che offre funzioni per inserire i dati nei report.

L'output verrร  salvato in un file di stampa Jasper (file con estensione jrprint) che potrร  essere utilizzato per stampare o esportare il report.

Esportazione del report nel formato desiderato

In quest'ultima fase, รจ necessario esportare il file di stampa Jasper creato in precedenza in qualsiasi formato utilizzando la classe JasperExportManager. Poichรฉ Jasper offre piรน formati di esportazione, possiamo utilizzare lo stesso input per creare varie rappresentazioni dei dati.

Come installare Jasper Reports โ€“ Configurazione dell'ambiente

Ora, vediamo la procedura passo passo per la configurazione dell'ambiente JasperReports. Gli screenshot seguenti sono stati acquisiti con il programma di installazione 6.9. La versione community corrente รจ la 6.21.3, pubblicata il 23 aprile 2024, e la sequenza delle schermate รจ rimasta invariata, sebbene il numero di versione nel nome del file sia diverso.

Passo 1) Scarica l'edizione della community di Jasper Report
Vai a questo vetro e fai clic sull'opzione Scarica ora per installare Jasper Reports Community Edition.

Installa Jasper Reports - Configurazione dell'ambiente

Passo 2) Seleziona Jaspersoft Studio CE
Tra le edizioni community, selezionare Jaspersoft Studio CE.

Installa Jasper Reports - Configurazione dell'ambiente

Passo 3) Scarica Jaspersoft Studio
Vai a questo link e fai clic sul pulsante Scarica, quindi apri il file eseguibile di installazione scaricato per il tuo sistema operativo.

Installa Jasper Reports - Configurazione dell'ambiente

Passo 4) Fai clic sul pulsante "Accetto".
Verrร  visualizzata la schermata seguente. Selezionare il pulsante "Accetto".

Installa Jasper Reports - Configurazione dell'ambiente

Passo 5) Scegli la posizione
Seleziona il luogo di installazione e fai clic sul pulsante Avanti.

Installa Jasper Reports - Configurazione dell'ambiente

Passo 6) Il progresso รจ in corso ora
Vedrai l'avanzamento nella schermata successiva.

Installa Jasper Reports - Configurazione dell'ambiente

Passo 7) Fare clic sul pulsante Fine
Nella schermata successiva, fare clic sul pulsante Fine.

Installa Jasper Reports - Configurazione dell'ambiente

Passo 8) Il progresso รจ completo
Nella tua finestra apparirร  la seguente schermata.

Installa Jasper Reports - Configurazione dell'ambiente

Passo 9) Inizia ora
Successivamente, fai clic sull'opzione "Inizia".

Installa Jasper Reports - Configurazione dell'ambiente

Passo 10) Inizia a lavorare con lo studio Jasper Reports
Verrร  visualizzata la schermata successiva e potrai iniziare a lavorare con Jasper Reports Studio.

Installa Jasper Reports - Configurazione dell'ambiente

Suggerimento: Jaspersoft Studio รจ un Eclipse applicazione basata e necessita di un compatibile Java runtime presente sulla macchina. Se il programma di installazione non si avvia, verificare la versione di JDK installata prima di reinstallarla.

Esempio di creazione di un modello di report

Ora impariamo come creare un modello di report in JasperReports.

Il file modello di report utilizzato in JasperReports รจ un semplice file XML con estensione jrxml. Questo file contiene il tag jasperReport come elemento radice. Il framework JasperReports รจ in grado di gestire diversi tipi di origini dati.

Un modello di report viene progettato e creato seguendo i passaggi descritti di seguito.

Passo 1) Creazione del file JRXML in Jaspersoft Studio.

  1. Vai all'opzione File.
  2. Selezionare il sottomenu Nuovo.
  3. Fai clic sull'opzione Jasper Report.

Esempio di creazione di un modello di report

Passo 2) Selezione del modello desiderato.

  1. Seleziona il tuo modello, ad esempio, ciliegia.
  2. Fare clic sul pulsante "Avanti".

Esempio di creazione di un modello di report

Passo 3) Selezione di una cartella principale.

  1. Seleziona la cartella I miei report.
  2. Inserisci il nome del file, ad esempio "Cherry Report".
  3. Fare clic sul pulsante "Avanti".

Esempio di creazione di un modello di report

Passo 4) Nella finestra Origine dati, fai clic sul pulsante "Nuovo" per creare un nuovo adattatore dati.

Esempio di creazione di un modello di report

Passo 5) Selezione di un adattatore dati.

  1. Seleziona l'adattatore dati dalla casella di riepilogo. Ad esempio, "Raccolta di JavaFagioli."
  2. Fare clic sul pulsante "Avanti".

Esempio di creazione di un modello di report

Passo 6) Inserimento dei dettagli dell'adattatore dati e selezione della classe di fabbrica.

  1. Inserisci un nome per l'adattatore.
  2. Seleziona la classe di fabbrica cliccando sul pulsante โ€œโ€ฆโ€.

Esempio di creazione di un modello di report

Passo 7) Inserimento del prefisso o del modello.

  1. Immettere il prefisso o il modello del nome.
  2. Fai clic sugli elementi corrispondenti.
  3. Fare clic sul pulsante "OK".

Esempio di creazione di un modello di report

Passo 8) Definizione della classe factory e aggiunta del percorso ai file jar.

  1. Immettere il nome di un metodo statico nella classe factory. In questo esempio di report Jasper, si tratta di createBeanCollection.
  2. Se la tua JavaLa definizione dei bean include descrizioni di campo e, se desideri utilizzarle come nomi in Jaspersoft Studio, seleziona la casella di controllo "Usa descrizione campo".
  3. Aggiungi un percorso ai tuoi file jar.
  4. Fai clic sul pulsante โ€œFineโ€.

Esempio di creazione di un modello di report

Passo 9) Fare clic sul pulsante "Avanti".

Esempio di creazione di un modello di report

Passo 10) Congratulazioni! Hai inserito correttamente tutte le informazioni necessarie per la creazione del report. Fai clic sul pulsante "Fine".

Esempio di creazione di un modello di report

Il report verrร  generato come mostrato nella schermata sottostante.

Esempio di creazione di un modello di report

Il file sopra riportato richiede la compilazione nel formato binario di JasperReport, che viene chiamato file jasper.

L'interfaccia net.sf.jasperreports.engine.design.JRCompiler, che fa parte della libreria JasperReports, svolge un ruolo importante nella compilazione di questo file modello di report.

L'implementazione di questa interfaccia puรฒ essere scritta Java, JavaCopione, Groovyo qualsiasi altro linguaggio di scripting.

รˆ possibile compilare un file JRXML utilizzando i due metodi seguenti:

  • Compilazione programmatica da Java codice.
  • Compilazione utilizzando un Anti Apache compito.

Il frammento seguente mostra il percorso programmatico, dove una riga compila il modello e una seconda riga lo riempie con un JavaCollezione di fagioli.

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

Produzione:

Report exported successfully

Comprensione delle diverse fasce di report

Il layout di JasperReports รจ suddiviso in sezioni orizzontali chiamate bande. Ogni banda ha una regola di stampa fissa e la comprensione di queste regole permette al progettista di controllare con precisione la posizione di un valore nel documento finale.

Di seguito sono riportate le fasce di report standard adottate dalla maggior parte degli strumenti commerciali per la generazione di report.

  • Titolo
  • Intestazione di pagina
  • Intestazione di colonna
  • Eccezionale
  • Piรจ di pagina della colonna
  • Piรจ di pagina
  • Piรจ di pagina dell'ultima pagina
  • Sintesi
  • Intestazione del gruppo
  • Piรจ di pagina del gruppo
  • sfondo
  • Non ci sono dati

Analizziamo nel dettaglio ciascuna fascia di segnalazione.

Titolo

Questa banda viene mostrata all'inizio del report. Puรฒ essere posizionata sulla sua prima pagina impostando l'attributo isTitleNewPage="true".

Intestazione di pagina

La banda dell'intestazione di pagina viene visualizzata all'inizio di ogni pagina. Esclude la prima pagina se viene utilizzata la banda del titolo e l'ultima pagina se viene utilizzata la banda di riepilogo con l'impostazione isSummaryWithPageHeaderAndFooter="false".

Intestazione di colonna

Le intestazioni delle colonne vengono visualizzate prima della fascia dei dettagli su ciascuna pagina.

Eccezionale

La sezione dei dettagli viene iterata per ogni record presente nell'origine dati fornita. รˆ inoltre possibile che contenga piรน livelli di dettaglio (1, 2 e cosรฌ via).

Piรจ di pagina della colonna

Questa sezione appare sotto la banda dei dettagli su ogni pagina in cui รจ presente la banda dei dettagli. L'impostazione predefinita รจ la fine della pagina, ma puรฒ essere modificata per posizionarsi sotto l'ultima banda dei dettagli impostando l'attributo isFloatColumnFooter="true".

Piรจ di pagina

Questa sezione verrร  visualizzata alla fine di ogni pagina, escludendo la sezione riassuntiva, la sezione del titolo e l'ultima sezione non riassuntiva.

Piรจ di pagina dell'ultima pagina

Questa sezione compare nell'ultima pagina, al posto del normale piรจ di pagina, quando non รจ presente una sezione riassuntiva.

Sintesi

La sezione di riepilogo appare solo alla fine del report su una nuova pagina quando isSummaryNewPage="true" รจ impostato, e con intestazione e piรจ di pagina quando isSummaryWithPageHeaderAndFooter="true" รจ impostato.

Intestazione del gruppo

Questa sezione appare solo quando รจ definita, ogni volta che cambia l'espressione del gruppo, prima della sezione dei dettagli.

Piรจ di pagina del gruppo

Questa sezione viene visualizzata solo se รจ definito un gruppo, ogni volta prima che l'espressione del gruppo cambi, dopo la banda dei dettagli.

sfondo

Viene visualizzato su tutte le pagine come sfondo di tutte le altre bande di segnalazione.

No Data

Questa banda apparirร  quando non รจ stata passata alcuna fonte di dati oppure la fonte di dati รจ vuota e whenNoDataType="NoDataSection" รจ impostato.

Jasper contro Pentaho

Ora scopriremo la differenza tra Jasper e Pentaho.

Ecco le principali differenze tra Jasper e Pentaho:

Scheda Sintetica Diaspro Pentaho
Report Jasper utilizza Jaspersoft Studio per la progettazione dei report. Utilizza Pentaho Report Designer.
Supporto ETL Jaspersoft utilizza la versione Talend Open Studio per scopi ETL. Utilizza Pentaho Data Integrator come impostazione predefinita Strumento ETL.
Cruscotto La funzionalitร  dashboard รจ presente solo nell'edizione Enterprise di Jaspersoft. Pentaho offre una vasta gamma di funzionalitร  nelle sue dashboard.
Intelligenza aziendale mobile Jaspersoft offre un supporto migliore per la Business Intelligence su dispositivi mobili. Pentaho ha bisogno di affidarsi a uno strumento di terze parti per migliorare l'esperienza di Business Intelligence su dispositivi mobili.
Documentazione Marketing, siti e documentazione migliori. Il supporto della documentazione รจ scarso.
caratteristica migliore รˆ piรน facile ricercare e trovare ciรฒ di cui hai bisogno. Offre funzionalitร  di data mining e integrazione con iPhone.
Versione a pagamento La versione a pagamento offre funzionalitร  come interrogazione ad hoc Interfaccia utente web e creazione di dashboard tramite interfaccia utente web. Offre funzionalitร  come l'integrazione LDAP, l'SSO e la verifica delle attivitร .

I team hanno giร  investito nel Java Gli stack di solito scelgono Jasper, mentre i team che necessitano di una forte integrazione dei dati insieme alla reportistica spesso scelgono Pentaho.

Sfide affrontate durante la creazione di JasperReports

Ecco alcune delle sfide che incontrerai durante la creazione di report con Jasper:

  • Modifiche fondamentali: quando le regole aziendali cambiano o vengono migliorate, รจ necessario modificare la logica principale del report.
  • Esempi validi sono i report complessi, come i sottoreport e i report a tabella incrociata.
  • Report grafici o diagrammi visivi, ad esempio grafici a linee XY, a torta, a barre, a serie temporali e a indicatore.

Svantaggi dell'utilizzo di Jasper Reports

Ecco gli svantaggi derivanti dall'utilizzo di Jasper Reports.

  • Una volta che si inizia ad apportare modifiche a parti del pacchetto e a rimuovere funzionalitร , รจ molto difficile tornare alle impostazioni predefinite.
  • รˆ troppo rigido e la modifica delle righe e la creazione di tabelle incrociate risultano operazioni complesse.
  • Alcune operazioni comuni, come specificare i subtotali per un report raggruppato, sono piรน semplici in altri strumenti di progettazione di report.
  • Jasper richiede la compilazione dei report prima di eseguirli. Ciรฒ significa che gli sviluppatori del report devono avere l'intero file Java SDK installato.
  • A volte, quando modifichi il report, non viene mostrata la stessa anteprima di come viene visualizzata sul Web.

DOMANDE FREQUENTI

Il file .jrxml รจ il modello XML leggibile dall'uomo che i progettisti modificano. Il file .jasper รจ il file binario compilato prodotto da esso, e solo il file compilato viene eseguito in fase di runtime.

La libreria JasperReports e Jaspersoft Studio Community Edition sono rilasciate con licenza open source e possono essere integrate in prodotti commerciali. Le funzionalitร  di dashboard, pianificazione e sicurezza richiedono la versione a pagamento.

Sรฌ. Crea un adattatore dati JDBC in Jaspersoft Studio, fornisci il file JAR del driver e la stringa di connessione, quindi scrivi la query all'interno del report. I parametri vengono passati utilizzando la sintassi con il simbolo del dollaro e la parentesi graffa.

Sรฌ. Aggiungi la dipendenza jasperreports, posiziona i file .jasper compilati nel classpath e chiama JasperFillManager da una classe di servizio. I byte esportati possono essere trasmessi direttamente a una risposta HTTP.

Gli assistenti basati sull'IA possono generare rapidamente scheletri JRXML e sintassi delle espressioni. Apri sempre il file generato in Jaspersoft Studio, poichรฉ le altezze delle bande e le coordinate degli elementi spesso richiedono correzioni manuali.

Gestisce i documenti operativi con precisione al pixel che le dashboard basate sull'IA non sono in grado di produrre, come fatture e estratti conto. Gli output del modello vengono scritti in un database e Jasper li elabora per la distribuzione.

Riassumi questo post con: