creazione report per gestionali con JasperReport

Una delle funzionalità più importanti presenti nei gestionali è la creazione e la personalizzazione di qualsiasi report: fatture, DDT, ordini di vendita e qualsiasi altro documento.

Ad esempio, in Adempiere esiste un motore interno che permette la creazione dei report a partire da ogni singola maschera del gestionale.

Con questo tutorial mostriamo, invece, come creare un report con un alto grado di personalizzazione utilizzando JasperReport, uno strumento esterno ad Adempiere (o ad un altro gestionale). Tutto questo è possibile farlo senza essere specializzati in programmazione ma semplicemente conoscendo qualche nozione di linguaggio SQL.

Con questo tutorial mostreremo come creare un semplicissimo report con iReport in modo da mostrare alcune informazioni relative agli ordini di acquisto. Il report avrà in ingresso un parametro che utilizzeremo per eseguire un filtro “where” nella query.

Una volta installato JasperReport possiamo accedere alla schermata iniziale.

ireport avvio

La prima cosa da fare è impostare il datasource, ovvero, l’oggetto da dove prelevare i dati che serviranno come contenuto ai nostri report.  Per impostare il database è necessario definire il tipo di database (oracle, mysql, postgresql), la locazione del DB, il nome del DB e l’account utente.

creazione datasource

Nel nostro esempio ci collegheremo attraverso JDBC al database. Per fare questo basta selezionare la voce jdbc connection come in figura sopra e fare “avanti”.

Chiamiamo la nostra connessione “dbAdempiere” ed impostiamo i valori come in figura. Fare attenzione al JDBC URL. In questo campo dobbiamo impostare la locazione (IP) del DB (nel nostro esempio è localhost), la porta (5432 con PostgreSQL, 1521 con Oracle) ed il nome del database (nel nostro esempio è adempiere).

parametri jdbc postgresql

Dopo aver impostato anche l’account di accesso è possibile verificare la connessione con il tasto “prova”. Se la risposta è positiva allora è possibile fare “salva”.

Una volta impostato il datasource è possibile iniziare con la creazione del report. Noi faremo un esempio pratico ma molto banale. Giusto per far capire come si procede.

La prima cosa da fare è cliccare sotto “file” “nuovo report”. Si aprirà una maschera, come la seguente, in cui è possibile scegliere il formato del nostro report. Noi prendiamo un semplice foglio A4.

scelta template

Cliccando su “open this template” apparirà una schermata come la seguente.

maschera nuovo report

E’ molto importante notare la suddivisione della pagina del report. Tale suddivisione, infatti, verrà rispettata durante la fase di compilazione e di creazione del report. In questo modo posso inserire il titolo del report nello spazio associato ad esso, posso inserire delle testate di pagina, i titoli delle colonne, i dettagli delle colonne, informazioni a piè di pagina ecc…

Se ad esempio volessi creare un report per gli ordini di acquisto inserirò dentro detail i campi relativi ai dettagli del report: prodotto di acquisto, prezzo ecc…queste informazioni è necessario inserirle una sola volta. Se ad esempio, una volta che si crea il report, i prodotti dell’ordine sono più di uno allora verranno inseriti automaticamente nel report.

Nello spazio testata colonna sarà inserito il nome della colonna che etichetterà i dati all’interno della sezione detail. Tutto questo lo vedremo con un esempio pratico.

A questo punto iniziamo ad inserire i primi dati. Clicchiamo nell’iconcina affianco all’anteprima (il cilindro con la freccia) in modo da far apparire la schermata sottostante.

creazione query e parametri

All’interno del “report query” inseriamo la nostra query di selezione per prelevare i dati dal database. Utilizzando il database di Adempiere vogliano prelevare i dati dalla tabella degli ordini “C_Order“. Imposteremo la seguente query: select * from C_Order where isActive=P{isActive}.

Il significato della query è selezionare tutti gli ordini nella tabella ordini in modo tale che il campo isActive sia uguale ad un parametro che gli passeremo in sede di creazione del report. In questo modo possiamo scegliere di visualizzare i dati degli ordini attivi o di quelli non attivi a seconda di come gli imposteremo il parametro.

Con Ireport se la query è ben costruita verranno presentati, nella sezione sotto la query, tutti i campi prelevati dal DB (colorati di blu) in modo da poterli utilizzare successivamente nel report.

Prima di lasciare questa schermata clicchiamo su “new parameter” ed inseriamo il nome del parametro “isActive” per poi trascinarlo all’interno dell query. Il risultato è la query che si visualizza nella figura in alto. In questa fase possiamo scegliere anche il tipo del parametro. Nel nostro esempio è una stringa.

Tornando adesso alla schermata del report possiamo iniziare a costruire il nostro report inserendo informazioni come il titolo, il nome delle colonne ed i relativi dati: nella sezione titolo inseriamo nuovo report ordine. Espandendo poi, nel menù a sinistra, il tab “campi” ne preleviamo alcuni e li trasciniamo nella sezione detail. E’ da notare come, in automatico, verrà inserito nella sezione “testata colonna” anche il titolo del campo. Continuiamo così fino ad aggiungere almeno 5 campi di esempio. Il risultato è mostrato in figura sottostante.

design del report

Se tutta la procedura è stata fatta correttamente allora possiamo cliccare su “anteprima” e visualizzare il risultato del report. Prima di presentare l’anteprima il sistema ci chiederà di inserire il valore del parametro. Noi inseriremo ‘Y’ per visualizzare tutti i report attivi. Il risultato è il seguente.

anteprima

Una volta terminata l’anteprima e siamo soddisfatti del risultato possiamo terminare il tutto definendo un nome per il report al salvataggio e poi compilare il tutto. Il salvataggio del report produce un file che chiamaremo newOrder.jrxml, alla compilazione verrà generato un file chiamato newOrder.jasper. Questi file li copieremo in un percorso specifico che richiameremo successivamente dai software gestionali per prelevarne i report.

percorso dei file

Il prossimo tutorial mostreremo come visualizzare ed impostare questi report all’interno di Adempiere.

 

per qualsiasi informazione o approfondimento non esitate a contattarci!

Un pensiero riguardo “creazione report per gestionali con JasperReport”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *