In uno degli articoli precedenti abbiamo parlato del raggruppamento, una delle funzioni più importanti della reportistica, che consente agli utenti di avere report con informazioni meglio organizzate, facilmente capibili e, in definitiva, più usabili. In questo appuntamento introdurremo l’utilizzo dei grafici, altra funzione molto apprezzata (e, a dire il vero, abusata) dagli utenti, e cercheremo di vedere come l’unione di entrambe le funzionalità ci permetta di creare report di grande impatto.
Creazione del report di base
Per prima cosa creiamo un report di base, seguendo il procedimento indicato in questo articolo: Utilizzare Jasper Reports – Raggruppamento dei dati. Una volta ottenuto il nuovo report salviamolo in modo da poter procedere al passo successivo, ovvero l’inserimento di un grafico.
JFreeChart
Prima di procedere, è bene sapere che Jasper Report utilizza JFreeChart per la creazione dei grafici, quindi molti dei concetti che sono alla base della creazione degli stessi sono riconducibili alle scelte progettuali di JFreeChart. Insomma se avete qualche dubbio vi consigliamo di dare un’occhiata alla documentazione e ai forum dedicati a JFreeChart, è una libreria talmente diffusa e ben realizzata che sicuramente trovere tutto ciò di cui avete bisogno.
Realizzare il grafico
La query SQL del report provvede ad estrarre una lista di clienti e a ordinarli per città, cognome e nome:
[sql]SELECT a.ID, a.FIRSTNAME, a.LASTNAME, a.CITY
FROM ADDRESS as a
ORDER BY CITY, LASTNAME, FIRSTNAME[/sql]
Il report sfrutta l’ordinamento per città per creare un raggruppamento (sempre per città ovviamente). Noi vogliamo andare oltre, mostrando un grafico a torta che ci indichi visivamente quanti clienti esistono per ogni città. Per farlo procediamo in questo modo:
- allarghiamo la fascia denominata titolo, per farlo è sufficiente selezionarla nel report inspector, e impostare la proprietà Altezza banda (finestra proprietà) ad almeno 400 pixel;
- nello spazio vuoto che si è creato sotto il rettangolo blu del titolo, inseriamo un grafico, trascinando il simbolo del grafico dalla palette al report;
- nella finestra di dialogo scegliamo il grafico a torta;
- nella pagina di scelta del dataset scegliamo quello di default, denominato Main report dataset;
- nella pagina successiva dobbiamo specificare le espressioni da usare per le categorie e le serie. Clicchiamo sul primo pulsante (quello delle categorie), selezioniamo Campi e poi doppio clic su CITY;
- clicchiamo sul secondo pulsante (quello delle serie), selezioniamo Variabili e poi doppio clic su CITY_COUNT. La variabile CITY_COUNT è stata creata automaticamente dal report, in quanto utilizzata per il raggruppamento
- clicchiamo su Avanti e poi Termina;
- dopo aver creato il grafico, allarghiamo il riquadro con il mouse fino a riempire lo spazio disponibile.
Cliccando ora su Anteprima potremo quindi apprezzare il grafico appena creato. Avendolo inserito nella fascia Titolo il grafico verrà inserito una sola volta, all’inizio del report, ma ovviamente è possibile inserire i grafici in ciascuna fascia, se necessario.
Linkografia
- Utilizzare Jasper Reports – Raggruppamento dei dati
- JFreeChart, la libreria per la creazione dei grafici utilizzata da Jasper Reports.