Nell’articolo di oggi vedremo come integrare una sorgente datasource di tipo JDBC nel nostro report. Per prima cosa occorre disporre di una sorgente dati: è possibile utilizzare il database di esempio fornito con Ireport HSQLDB o procurarsi un altra DBMS, Nell’esempio ho usato Mysql fornito con Xampp.
In questo database ho definito lo schema REPORT e in esso ho definito la tabella LIBRI. Ecco lo script per generarlo agevolmente:
1 2 3 4 5 6 7 8 9 10 11 |
DROP TABLE IF EXISTS `libri`; CREATE TABLE IF NOT EXISTS `libri` ( `id` int(11) NOT NULL, `titolo` text NOT NULL, `autore` text NOT NULL, `genere` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO `libri` (`id`, `titolo`, `autore`, `genere`) VALUES (1, 'libro1', 'autore1', 'giallo'), (2, 'titolo2', 'autore2', 'giallo'); |
Una volta che abbiamo la nostra sorgente dati passiamo alla definizione del nostro Report. Usiamo IReport per generare un report vuoto e come prima operazione definiamo la connection verso il database appena configurato. Come parametri di configurazione usiamo i seguenti dati:
- JDBC Driver: MySQL (com.mysql.jdbc.Driver)
- JDBC URL: jdbc:mysql://localhost/report
Tramite la funzione Report Query individuiamo i campi della tabella LIBRI che vogliono mettere nel nostro report. Scegliamo come language l’SQL e definiamo la nostra query:
1 2 3 4 5 |
SELECT libri.`id` AS libri_id, libri.`titolo` AS libri_titolo, libri.`autore` AS libri_autore, libri.`genere` AS libri_genere FROM `libri` libri |
con cui recuperiamo i campi da visualizzare nel nostro report.
Aggiungiamo un testo statico nella banda Titolo, l’intestazione di colonne nella banda Testata di Colonna e nella banda Detail mettiamo i campi restituiti dalla nostra query.
A questo punto non resta che lanciare l’anteprima e avremo il risultato desiderato.
Per comodità trovate il file jrxml con cui fare subito qualche prova.