Utilizzare Jasper Reports – I parametri

Utilizzare Jasper ReportNei template di Jasper Reports è possibile definire dei parametri, ovvero dei valori da passare al momento dell’esecuzione del report in modo che ne modificano il funzionamento.

Alcuni esempi di utilizzo possono essere:

  • Stringhe da inserire così come sono, ad esempio il titolo della pagina, un’annotazione, ecc;
  • Valori da utilizzare nelle query SQL embedded nel report;
  • Parametri di funzionamento: specifiche di formattazione, percorsi di file o immagini da includere, codici di vario genere;
  • … e la lista potrebbe continuare per molto!

L’utilizzo dei parametri nei report, se usato bene, può davvero fare la differenza, accontentando tutti: gli utenti finali avranno a disposizione dei report incredibilmente flessibili, variegati e professionali, e gli sviluppatori potranno realizzare tutto ciò con (relativamente) poco sforzo.

Dichiarazione dei parametri

Riprendiamo in mano il report che abbiamo creato nella seconda lezione (“Formattazione di base”), e salviamolo con un nuovo nome (File -> Salva come…), in modo da poter esplorare le nuove funzionalità senza perdere il lavoro svolto.

  • titolo del report, che chiameremo title;
  • nome dell’operatore e un numero progressivo, che chiameremo operator e report_id. Non è difficile incontrare questi parametri nei report creati per grosse aziende, dove l’esecuzione degli stessi viene sottoposta a processi di audit per motivi vari: sicurezza, statistche, conformità a procedure ISO, ecc.

Per definire i parametri in iReport bisogna:

  • dalla finestra Report inspector (se non la vedete attivatela da Finestra -> Report inspector) cliccare con il tasto destro alla voce Parametri e aggiungi parametro;
  • nella finestra Proprietà impostiamo:
    • nome: title
    • come classe lasciamo java.lang.String
    • lasciamo selezionato usa come prompt (vedremo poi a cosa serve);
    • (opzionale) in valore espressione di default mettiamo “NO TITLE”
  • procediamo similmente per i parametri operator e report_id.

Utilizzo dei parametri

Se proviamo ora a eseguire il report, si aprirà una finestra che ci chiede di inserire, uno alla volta, i parametri che abbiamo configurato. Ma non abbiamo ancora deciso come utilizzarli! Rimediamo subito.

Il parametro ovviamente andrà a sostituire l’etichetta di testo che attualmente è cablata nel report, per farlo bisogna trasformare l’etichetta (o label) in un campo di testo (o textfield). Per farlo bisogna:

  • inserire questo valore al posto del titolo esistente: $P{title}. Il simbolo $P{…} infatti serve per referenziare il valore del parametro specificato nelle parentesi graffe;
  • cliccare col tasto destro, selezionare transform to -> campo di testo (in effetti al momento iReport ha ancora qualche problema di traduzione…).

Per gli altri due parametri possiamo procedere similmente, creando due textfield tramite la palette (Finestre -> palette) e utilizzando queste espressioni come valori: ${operator} e ${report_id}.

Sviluppi

In realtà nel 99% dei casi i parametri vengono passati al report da procedure automatiche, senza che compaiano finestrelle sul monitor… specialmente se i report vengono eseguiti su un server! In effetti la proprietà usa come prompt è stata creata per l’utilizzo congiunto con uno strumento come iReport, per permettere ai designer di testare comodamente i report dentro iReport o prodotti simili.