JasperReports è uno strumento open source di reportistica per Java che genera report applicativi. Questo strumento di reportistica supporta l'esportazione di contenuti ricchi di report su schermi, stampanti o vari formati di file come HTML, PDF, XLS, RTF, CSV, XML, ODT e TXT.
JasperReports può essere utilizzato anche per applicazioni abilitate a Java come Java EE o applicazioni web per generare contenuti dinamici.
Installa JasperReports
Installa Jasper Reports Community Edition da qui.
https://community.jaspersoft.com/community-download
Struttura del rapporto Jasper
Il template del report .jrxml è composto dalle seguenti parti come mostrato nel diagramma sottostante.
1. Il titolo contiene il "titolo" del rapporto. Appare solo una volta all'inizio del rapporto. Ad esempio, il rapporto si intitola "Rapporto Studentesco."
2. Il titolo della pagina può includere informazioni su data e ora o il nome dell'istituzione. È mostrato in cima a ogni pagina. Ad esempio: il titolo della pagina può essere "Registri degli studenti."
3. Le intestazioni delle colonne elencano i nomi dei campi specifici da visualizzare nel report, come "ID studente", "Nome studente", "Indirizzo studente", ecc.
4. La sezione informazioni dettagliate mostra le voci per campi specifici. Ad esempio: ID studente=101, Nome studente="Den Peek", Indirizzo studente="Pune".
5. I footer di colonna possono mostrare la somma di qualsiasi campo. Ad esempio, "Tempo totale di studio: 6 ore al giorno."
6. Il piè di pagina può contenere informazioni sul numero di pagina. È mostrato in fondo a ogni pagina, ad esempio: "Numeri di pagina 1, 2, 3 e tutti i numeri di pagina."
7. Abstract: Il riassunto del rapporto, scritto almeno una volta nell'abstract.
JasperReports — Ciclo di vita
Progettare il report — In questo passaggio, creeremo un file JRXML, che è un documento XML contenente la definizione del layout del report. Rapporto di compilazione - In questo passaggio, JRXML viene compilato in un oggetto binario chiamato Jasper (*.jasper). Inserire i dati nei report—in questo passaggio, i dati dell'applicazione vengono inseriti nel report compilato. La classe net.sf.jasperreports.engine.JasperFillManager fornisce le funzioni necessarie per compilare i dati del report. Il sistema crea un file di stampa Jasper (*.jrprint), che può essere utilizzato per stampare o esportare report. Report di esportazione - In questo passaggio possiamo usare JasperExportManager per esportare il file di stampa Jasper creato nel passaggio precedente in qualsiasi formato.
Classe API
Esistono molte classi disponibili per compilare progetti di report JRXML, compilare report, stampare report ed esportarli come file PDF, HTML e XML.
Quali contenuti sono contenuti nel pacchetto (net.sf.jasperreports.engine)?
· JasperCompileManager — Utilizzato per compilare template di report JRXML. · JasperFillManager — Utilizzato per compilare report utilizzando dati provenienti da fonti dati. · JasperPrintManager — Utilizzato per stampare documenti generati dalla libreria JasperReports. · JasperExportManager — Utilizzato per ottenere contenuti PDF, HTML o XML di documenti generati durante il processo di compilazione dei report.
Fonte dei dati
Una sorgente di dati è un contenitore di dati strutturati. Quando genera report, il motore JasperReports recupera i dati dalla fonte dati. I dati possono essere ottenuti da database, file XML, array di oggetti e collezioni di oggetti.
La tabella sottostante riassume le fonti dati e le loro classi di implementazione—
Elementi dati di Jasper Reports
Parametri: $P $P{parameter_name)
· Viene utilizzato per i valori individuali nel rapporto.
· I dati che non possono essere passati attraverso la sorgente dati possono essere passati attraverso i parametri. Ad esempio, titoli di report e altri dati.
· I template JasperReports o JRXML possono avere zero o più elementi di parametro.
Campo: $F $F{field_name}
· I campi del report sono elementi che rappresentano la mappatura dei dati tra le fonti di dati e i template di report.
Viene utilizzato per cambiare valori in ogni iterazione, o in altre parole, per rappresentare una riga di dati in una tabella.
Variabile: $V $V{variable_name}
· È fornito dai rapporti di Jasper.
Viene anche utilizzato per eseguire calcoli su rapporti Jasper, come operazioni aritmetiche.
Passaggi per creare qualsiasi rapporto Jasper
1. Progettare il template copiando il file jrxml nella cartella Spring Resources
2. Creare parametri richiesti
3. Creare fonti di dati
4. Compila il template .jrmxl memorizzato nell'oggetto JasperReport
5. Compilare il report — passando oggetti .jrxml compilati, parametri e sorgenti dati.
6. Report di esportazione — Usa JasperExportManager
Esempio di SpringBoot — JasperReports
Aggiungi le dipendenze di Maven.
Controller
Servizio
emp24.jrxml
Dopo aver eseguito, riceverai il report generato.http://localhost:8990/empapp/api/v1/reports/jasper/emp24?fileType=doc
JasperReports — Esempio di rappresentazione di un sottorapporto
Per i sottorapporti, apri il template esistente emp.jrxml e aggiungi un altro modello user.jrxml come sottoreport.
Per aggiungere un report figlio al report principale, apri il report principale, clicca sul report figlio dal pannello, trascinalo nell'area riassunto e fornisci i seguenti dettagli.
Seleziona "Crea elementi di report solo figlio", poi clicca su "Avanti." Non usare nessuna connessione al database, poi procedere al passaggio successivo e concludere. Clicca con il tasto destro > Allinea > adatta al formato di larghezza/tabella
Per i sottoreport User.jrxml, passeremo i dati dei sottoreport dal report principale come parametro. Per raggiungere questo obiettivo, dobbiamo ......
Crea un nuovo parametro come subReport e il tipo di dato JasperReport come nel report principale Creare nuovi parametri per il subDatasource e il tipo di dato JRBeanCollectionDataSource Creare nuovi parametri sottoParametri e tipo di dato Map
Ora apri le proprietà del sottorapporto
Elimina $P{REPORT_CONNECTION} Espressione: $P{subReport} Espressione di mappatura dei parametri: $P{subParameters} Espressione fonte dati: $P{subReportDataSource}
Ora, qualsiasi dato che passiamo come parametro verrà inserito nel sottorapporto.
Codice di esempio
empSubreport.jrxml
Mettilo alla prova:http://localhost:8990/empapp/api/v1/reports/jasper/subreport?fileType=pdf
Riferimento:Il login del link ipertestuale è visibile. Originale:Il login del link ipertestuale è visibile. |