Mokabyte

Dal 1996, architetture, metodologie, sviluppo software

  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti
Menu
  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti
Cerca
Chiudi

Nel numero:

104 febbraio
, anno 2006

JasperReports: una libreria Open Source per la reportistica

Parte I

Guglielmo Iozzia

Guglielmo Iozzia

Guglielmo Iozzia si è Laureato nel 1999 in Ingegneria Elettronica (indirizzo Biomedico) presso l‘Università di Bologna. Ha progettato e realizzato un software diagnostico per la predizione dell‘andamento della pressione intracranica in pazienti in terapia intensiva neurochirurgica. Frequenta il mondo Java dall‘inizio del 2000. Dopo numerose esperienze presso un‘azienda di Bologna del settore IT (fino all‘aprile del 2006), e per qualche mese in una analoga società di Roma, ha scelto la libera professione, lavorando per RAI Net fino ai primi mesi del 2008. In seguito è diventato Senior IT Consultant per la FAO (Food and Agriculture Organization of the United Nations). In ambito FAO ha dedicato quasi tutto il 2012 al progetto GRMS (Global Resources Management System) in qualità di "Web Services and cross-environmental integration specialist". Da luglio 2013 si è trasferito a Dublino, dove ricopre il ruolo di SVT Automation Engineer per IBM Ireland.

MokaByte

JasperReports: una libreria Open Source per la reportistica

Parte I

Guglielmo Iozzia

Guglielmo Iozzia

  • Questo articolo parla di: Frameworks & Tools, Programmazione & Linguaggi

Primo articolo su JasperReports, una libreria Open Source per la realizzazione di reportistica da un‘applicazione Java, che consente la produzione di diversi formati, tra cui HTML e PDF.

Introduzione

Questo mese inizia una serie di tre articoli dedicata alle API di JasperReports, una libreria Open Source (rilasciata con licenza LGPL) scritta interamente in Java che consente la generazione dinamica di report a partire da dati recuperati da fonti di varia natura (per esempio database) e la loro visualizzazione, stampa o salvataggio su file di tipo PDF, HTML, XLS, CSV o XML. JasperReports può essere utilizzata in tutti i tipi di applicazioni Java, comprese quelle Web. In questo primo articolo verranno fatte una panoramica sull‘architettura di JasperReports e una descrizione a grandi linee del processo di generazione di un report.

La reportistica

Spesso può capitare l‘esigenza di dover integrare delle funzionalità  di reportistica all‘interno di una applicazione Java. In questi casi JasperReports è un‘alternativa sicuramente valida non solo all‘ipotesi di realizzare ex novo il motore per la creazione di report professionali ma anche rispetto all‘adozione di software commerciali (quali Crystal Reports), molto potenti e stabili, ma che comportano per il nostro progetto dei costi aggiuntivi elevati, sia in termini economici (a causa delle licenze) che di tempo (interfacciamento non sempre agevole).
JasperReports prevede già  delle API per la realizzazione di tutte le funzionalità  tipiche di un software di reportistica:

  • formattazione di ogni elemento di un testo (font, allineamento, spaziatura, colore, etc.)
  • definizione di parti standard predefinite (header, footer, sommario, etc.)
  • gestione di raggruppamenti
  • valutazione di espressioni
  • campi calcolati
  • gestione di subreport
  • inserimento di immagini
  • stampa
  • salvataggio dell‘output su file di diverso formato

In figura 1 viene mostrato un esempio di report generato da applicazione Java tramite JasperReports.

Architettura di JasperReports

In figura 2 viene mostrato un diagramma dell‘architettura di JasperReports.

In fase di design, deve essere per prima cosa definito il layout (sotto forma di file XML, costruito secondo lo schema definito in jasperreport.dtd) di un report. A partire da tale layout, tramite JasperReports, andrà  prodotto un file con estensione .jasper. Quest‘ultimo è il semicompilato che verrà  utilizzato dall‘applicazione a runtime per la generazione del report vero e proprio, a partire da dati recuperati da un database. La figura 3 chiarisce ulteriormente questo concetto.

La versione più recente di JasperReports è la 1.1.1
Richiede il JDK 1.2.2 o versione superiore.
Il runtime e la compilazione necessitano delle seguenti liberie Java (tutte comunque incluse nell‘archivio ZIP scaricabile dal sito ufficiale (http://jasperreports.sourceforge.net/)):

  • SAX XML Parser
  • Jakarta Commons Digester Component
  • Jakarta Commons BeanUtil Component
  • Jakarta Commons Collections Component
  • Jakarta Commons Logging Component
  • JDBC 2.0
  • IText
  • Jakarta POI

I package che compongono la libreria sono i seguenti:

  • net.sf.jasperreports.ant
  • net.sf.jasperreports.engine
  • net.sf.jasperreports.engine.base
  • net.sf.jasperreports.engine.data
  • net.sf.jasperreports.engine.design
  • net.sf.jasperreports.engine.export
  • net.sf.jasperreports.engine.fill
  • net.sf.jasperreports.engine.print
  • net.sf.jasperreports.engine.util
  • net.sf.jasperreports.engine.xml
  • net.sf.jasperreports.view
  • net.sf.jasperreports.view.save

Il più importante fra questi è net.sf.jasperreports.engine, il quale contiene le classi direttamente richiamate dalle applicazioni che adottano JasperReports ed evidenziate in rosso in figura 1.

Conclusioni

La comprensione dell‘architettura di JasperReports descritta in questo articolo è necessaria per potersi cimentare nella integrazione di tale liberia in un‘applicazione Java. Nel prossimo articolo vedremo alcuni esempi pratici semplici, ma molto utili da un punto di vista didattico perché mettono in risalto le operazioni comuni a tutte i processi di generazione di report tramite JasperReports.

1Teodor Danciu”Documentazione ufficiale di JasperReports”http://jasperreports.sourceforge.net/2Wostmann & Associates”JasperReports and iReports”http://www.wainet.com/Presentations/JasperReports%20&%20iReports.ppt

Facebook
Twitter
LinkedIn
Guglielmo Iozzia

Guglielmo Iozzia

Guglielmo Iozzia si è Laureato nel 1999 in Ingegneria Elettronica (indirizzo Biomedico) presso l‘Università di Bologna. Ha progettato e realizzato un software diagnostico per la predizione dell‘andamento della pressione intracranica in pazienti in terapia intensiva neurochirurgica. Frequenta il mondo Java dall‘inizio del 2000. Dopo numerose esperienze presso un‘azienda di Bologna del settore IT (fino all‘aprile del 2006), e per qualche mese in una analoga società di Roma, ha scelto la libera professione, lavorando per RAI Net fino ai primi mesi del 2008. In seguito è diventato Senior IT Consultant per la FAO (Food and Agriculture Organization of the United Nations). In ambito FAO ha dedicato quasi tutto il 2012 al progetto GRMS (Global Resources Management System) in qualità di "Web Services and cross-environmental integration specialist". Da luglio 2013 si è trasferito a Dublino, dove ricopre il ruolo di SVT Automation Engineer per IBM Ireland.

Guglielmo Iozzia

Guglielmo Iozzia

Guglielmo Iozzia si è Laureato nel 1999 in Ingegneria Elettronica (indirizzo Biomedico) presso l‘Università di Bologna. Ha progettato e realizzato un software diagnostico per la predizione dell‘andamento della pressione intracranica in pazienti in terapia intensiva neurochirurgica. Frequenta il mondo Java dall‘inizio del 2000. Dopo numerose esperienze presso un‘azienda di Bologna del settore IT (fino all‘aprile del 2006), e per qualche mese in una analoga società di Roma, ha scelto la libera professione, lavorando per RAI Net fino ai primi mesi del 2008. In seguito è diventato Senior IT Consultant per la FAO (Food and Agriculture Organization of the United Nations). In ambito FAO ha dedicato quasi tutto il 2012 al progetto GRMS (Global Resources Management System) in qualità di "Web Services and cross-environmental integration specialist". Da luglio 2013 si è trasferito a Dublino, dove ricopre il ruolo di SVT Automation Engineer per IBM Ireland.
Tutti gli articoli
Nello stesso numero
Loading...

Realizzare un plugin custom di Image I/O

Parte I

Service Oriented Architecture

Parte V: SOI

Applicazioni Desktop

Ancora su JTable

Dal RAD al Project Management: MDA non è mai stata così

Parte I: DSDM, la nuova frontiera del RAD

La progettazione di applicazioni web con UML

I parte: la Web Application Extension

Nella stessa serie
Loading...

JasperReports: una libreria Open Source per la reportistica

III parte: utilizzo di iReport per la creazione di layout

JasperReports: una libreria Open Source per la reportistica

II parte

Mokabyte

MokaByte è una rivista online nata nel 1996, dedicata alla comunità degli sviluppatori java.
La rivista tratta di vari argomenti, tra cui architetture enterprise e integrazione, metodologie di sviluppo lean/agile e aspetti sociali e culturali del web.

Imola Informatica

MokaByte è un marchio registrato da:
Imola Informatica S.P.A.
Via Selice 66/a 40026 Imola (BO)
C.F. e Iscriz. Registro imprese BO 03351570373
P.I. 00614381200
Cap. Soc. euro 100.000,00 i.v.

Privacy | Cookie Policy

Contatti

Contattaci tramite la nostra pagina contatti, oppure scrivendo a redazione@mokabyte.it

Seguici sui social

Facebook Linkedin Rss
Imola Informatica
Mokabyte