BIRT: ricetta opensource per reportistica e business intelligence

BI è l'acronimo di "Business Intelligence" col quale si usa riferirsi a quella categoria di software in grado di trasformare i dati in informazioni di supporto al business.

BI è l’acronimo di “Business Intelligence” col quale si usa riferirsi a quella categoria di software in grado di trasformare i dati in informazioni di supporto al business. Si tratta di soluzione che “non generano dati” ma permettono invece di valorizzare il patrimonio informativo dell’azienda offrendo tutti gli strumenti per analizzare, visualizzare, organizzare e comprendere i dati.

Abbiamo più volte parlato di Crystal Reports (ved. questi documenti), probabilmente il software leader per quanto riguarda business intelligence e reportistica.

In questo articolo presentiamo “un pretendente al trono” che arriva dal mondo opensource. Il suo nome è BIRT (Business Intelligence and Reporting Tools) e “va a braccetto” con Eclipse, piattaforma di sviluppo ideata da un consorzio di grandi società quali Ericsson, HP, IBM, Intel, MontaVista Software, QNX, SAP e Serena Software.
Sviluppato nel linguaggio Java, Eclipse fornisce allo sviluppatore gli strumenti per la realizzazione di software di vario genere in Java, C++ od in altri linguaggi grazie all’applicazione di speciali plug-in.

Sebbene BIRT abbia sino ad oggi avuto lo svantaggio di stringere un pò troppo l’occhiolino agli sviluppatori (mentre in genere chi utilizza strumenti di business intelligence non lo è…), il prodotto – a partire dal rilascio della seconda versione – è assai cresciuto. In BIRT, ad esempio, sono disponibili nuovi report, viene data la possibilità di servirsi di un maggior numero di grafici e finalmente è più facile creare dei modelli da riutilizzare successivamente.
BIRT si sta insomma affacciando sul mondo da sempre dominato da Crystal Reports che comunque rimane ancora più ricco e più completo.

Requisito indispensabile per l’installazione di BIRT, è la presenza sul sistema di Java runntime environment (JRE) (consigliamo, a tal proposito, di verificare di aver installato la versione più aggiornata, esente da vulnerabilità di sicurezza). L’ultima versione della JRE di Sun è scaricabile facendo riferimento a questa pagina.
Scaricando ed avviando il setup della versione “All-in-One” di BIRT (ved. questa pagina) verranno installati, oltre a BIRT, anche l’IDE Eclipse, il “Graphic Editor Framework” (GEF) – plug-in per Eclipse utilizzato per la visualizzazione dell’interfaccia grafica – e l'”Eclipse Modeling Framework” (EMF) – utilizzato da BIRT per la generazione dei grafici -, requisiti essenziali.
BIRT è traducibile anche nella nostra lingua scaricando ed applicando l’apposito “language pack” (ved. questa pagina per il download). Si tenga presente, tuttavia, che possono trascorrere anche diversi giorni prima del rilascio della traduzione relativa ad una nuova versione di BIRT, appena resa disponibile.
Per applicare il “language pack” è sufficiente aprire il file zip compresso quindi estrarne il contenuto nella cartella ove si è installato Eclipse. Ci si dovrà accertare, quindi, selezionando il menù Windows, Preferences quindi la sezione Report (Progettazione prospetti), Preview (Anteprima) che nel menù a tendina relativo alle impostazioni internazionali sia visualizzato “Italiano (Italia)”.

Iniziando a cimentarsi nell’utilizzo di BIRT, per prima cosa è necessario creare un nuovo progetto di lavoro quindi un nuovo report (denominato “prospetto” nella versione “italianizzata” del prodotto). BIRT propone l’utilizzo di diversi modelli di base per il report che si è in procinto di creare.

Nella parte destra della finestra, BIRT visualizza una finestra che riassume i passi che portano alla creazione del report (scelta di una sorgente dati, creazione di un dataset, collegamento dei dati agli elementi che compongono il report).

La finestra centrale di BIRT mostra la struttura del report. La “linguetta” denominata “Pagina principale” o (“Master page”) può essere utilizzata per gestire intestazione e pié di pagina del report. La scheda “Script” può essere usata per aggiungere del codice da eseguire nel momento in cui si verifichino particolari eventi.
Cliccando su “Anteprima” è possibile controllare come si presenterà il report finale mentre in “Origine XML” viene inserito il codice che genera il report in corso di sviluppo.

Connessione ad una base dati

Dopo aver selezionato “Layout”, attraverso la scheda “Palette”, si possono selezionare i vari elementi da inserire nel report mentre cliccando sulla sottostante scheda “Outline” tutti i componenti del report vengono riepilogati sotto forma di struttura ad albero. Nella scheda “Data Explorer” sono elencate le sorgenti di dati, dataset ed i parametri utilizzati nel report.

Utilizzando appositi driver JDBC, è possibile creare report con BIRT a partire dai dati memorizzati nei formati più disparati. Facendo riferimento a questa pagina (sito di Sun Microsystems) si possono verificare quanti driver JDBC siano presenti sul mercato. Alcuni di essi sono opensource e comunque distribuiti con licenza GPL mentre altri sono prodotti commerciali a pagamento.
Il driver JDBC per connettere BIRT con una base dati MySQL, ad esempio, viene distribuito sotto licenza GPL ed è prelevabile da questa pagina. Sempre a titolo esemplificativo, Microsoft distribuisce gratuitamente – attraverso il suo sito web – i driver JDBC per connettersi a basi di dati SQL Server 2000 e SQL Server 2005 (ved. questa pagina per informazioni e download).
La sorgente di dati selezionata può essere modificata in qualunque momento facendo riferimento alla scheda “Data Explorer” di BIRT.

Nel nostro caso, cliccando su Nuova origine dati (scheda Data Explorer/Esplora dati) abbiamo provveduto a connetterci ad una base dati in formato Microsoft SQL Server 2005 Express (.mdf). Per effettuare la connessione ad un database SQL Server, è necesario – dopo aver provveduto all’installazione dei driver JDBC – scegliere la voce JDBC Driver dalla finestra Modifica origine dati di BIRT, selezionare il driver “com.microsoft.sqlserver.jdbc.SQLServerDriver (v1.1)” quindi indicare quanto segue come stringa di connessione (il database da noi impiegato si chiama Movie.mdf):

jdbc:sqlserver://localhost:5560;databaseName=Movie

E’ importante ricordare che per potersi connettere ad un database SQL Server attraverso i driver JDBC, è indispensabile aver scelto – in fase di installazione di SQL Server – la modalità di autenticazione “mista” (“autenticazione di Windows e autenticazione di SQL Server”).

E’ altresì necessario accedere alla configurazione di SQL Server (Strumenti di configurazione, Gestione configurazione SQL Server), portarsi in corrispondenza della sezione Configurazione di rete SQL Server, Protocolli per “SQLEXPRESS” (dove “SQLEXPRESS” è il nome dell’istanza di SQL Server) ed accertarsi che il protocollo TCP/IP sia impostato su “Attivato”. Facendo doppio clic su “TCP/IP” impostare su “Attivato” i vari IP e specificare, come numero di porta, ad esempio, 5560.

I “Data Set” possono essere considerati come una rappresentazione dei dati memorizzati all’interno di una o più tabelle componenti la sorgente dati. All’interno di un “Data Set” di BIRT può essere memorizzato il risultato di una query SQL oppure di una “stored procedure” (generalmente si tratta di query scritte in SQL oppure in linguaggi di programmazione specifici memorizzate direttamente all’interno di un database).

Una volta digitata la query SQL che dovrà essere eseguita per ottenere i dati da presentare nel report, la finestra successiva proposta da BIRT consentirà di ottenere un elenco dei vari campi restituiti (“Columns”), di aggiungere una o più colonne il cui valore è calcolato sulla base di altri campi, di specificare parametri e di filtrare i dati ottenuti.

Cliccando su “Risultati anteprima”, è possibile visualizzare immediatamente – prima di inserire qualsiasi cosa all’interno del report – i dati che sono stati estrapolati da database collegato sulla base della query impostata e delle altre opzioni impostabili:

Creazione del report

Avendo scelto il modello di base “a gruppi”, è possibile notare come BIRT abbia già aggiunto nel report alcuni elementi fondamentali. All’interno di ciascuno di essi è possibile inserire gli elmenti che debbono comporre le intestazioni ed i pié di pagina (header/footer).
Così come accade in Crystal Reports, la sezione Detail row/Riga dettagli è sostanzialmente il “fulcro” del report in corso di creazione: tutto ciò che viene inserito all’interno di quest’area, sarà ripetuto tante volte quanti sono i record recuperati dalla sorgente dati.

Trascinando nella sezione “Detail row/Riga dettagli” una “colonna” presente nel nostro Data Set, ossia un campo dati del database collegato, BIRT provvederà ad aggiungerla immediatamente al report creando anche la relativa intestazione. Con un doppio clic sul nome del campo appena inserito nel report, l’utente ha la possibilità di regolare in profondità quali dati provenienti dal database debbano essere impiegati mentre la scheda Proprietà consente di intervenire sui font di carattere, sui colori del testo e di sfondo, sul formato dei dati.

BIRT si mostra particolarmente flessibile anche all’atto dell’inserimento di gruppi e sottogruppi all’interno del nostro report.
Nel nostro caso, abbiamo inserito nella “Riga intestazione di gruppo”, un riferimento al campo Genre in modo tale da ottenere un raggruppamento automatico per genere dei film presenti nel database:

E’ possibile richiedere in qualsiasi momento la composizione di un’anteprima del report in formato HTML (record visualizzati in forma continua oppure automaticamente suddivisi in più pagine) od in formato PDF.

Selezionando l’intera tabella nella finestra di progettazione del report di BIRT quindi agendo sulla scheda Ordinamento, si ha la possibilità di impostare i criteri di ordinamento con cui debbono essere presentati i dati che compongono il report.

Rispetto a Crystal Reports, BIRT si è dimostrato più flessibile per quanto riguarda la scelta del layout di pagina, l’allineamento di campi, etichette di testo ed elementi grafici. Una delle più importanti funzionalità che consentono di interagire con l’aspetto del report consiste nella possibilità di importare fogli di stile (CSS) del tutto identici a quelli impiegati nelle pagine web. Le impostazioni utilizzate nel foglio di stile (definibili anche manualmente dall’interno di BIRT) possono poi essere liberamente applicate a qualunque elemento che compone il report.
Oltretutto, va sottolineato come BIRT disponga già di un set di stili predefiniti (completamente personalizzabili) per le varie componenti di un classico report (intestazione, pié di pagine, liste, etichette di testo e così via).
BIRT offre la possibilità di inserire nel report non solo immagini memorizzate in locale ma anche quelle remote, ad esempio facenti parte di un sito web, semplicemente specificandone il relativo indirizzo.

E’ interessante notare, infine, come per la definizione dell’aspetto di qualunque testo, sia possibile impiegare le tag HTML. Così come in Crystal Reports, il testo “statico” visualizzato nelle etichette può essere combinato con i dati provenienti dal “datasource” collegato.

(circa 150 MB nella versione “All-in-One”).

Ti consigliamo anche

Link copiato negli appunti