lunedì 16 marzo 2009

JasperServer e iReport: linkare i report tra di loro

Utilizzando Google Analytics ho notato che all'interno del mio blog gli articoli più interessanti per il pubblico siano quelli incentratti sull'argomento Jasper Server e iReport.

Altra funzione che ho usato ultimamente è la possibilità di poter linkare tra loro diversi report.
iReport ci permette di inserire dei link legati ai vari oggetti che compongono il nostro template. Si possono precificare delle URL e quindi possiamo linkare tra loro report già realizzati.

Si procede molto velocemente creando un capo di testo. Dalle "Proprietà" dell'oggetto si sceglie la linguetta "Link ipertestuale" e quindi è possibile inserire il link al report.
Di solito i link ai report sono di questo tipo:
http://NOME_SERVER/jasperserver/flow.html?_flowId=viewReportFlow&reportUnit=/reports/NOME_REPORT&standAlone=true&ParentFolderUri=/reports
Quindi è sufficiente dopo aver deciso la tipologia del link (nel nostro caso Blank e Reference) indicare nella linguetta "Riferimento" l'indirizzo.
Da notare che è anche possibile passare dei parametri se il report destinazione lo prevede passati del report chiamante.
Nel qualcaso un'esempio di link potrebbe essere questo:
"http://NOME_SERVER/jasperserver/flow.html?_flowId=viewReportFlow&reportUnit=/reports/NOME_SOTTOCARTELLA_REPORT/NOME_REPORT&standAlone=true&ParentFolderUri=/reports/NOME_SOTTOCARTELLA_REPORT&SelectFromDateTime="+$V{SelectFrom_STRING}+"&SelectToDateTime="+$V{SelectTo_STRING}
La parte in neretto ci consente di passare ai parametri del report chiamato SelectFromDateTime e SelectToDateTime i valori delle Variabili $V{SelectFrom_STRING} e $V{SelectTo_STRING}.
In questo caso stiamo passando delle date con ora per cui dovendo passare un text alla stringa dell'indirizzo abbiamo usato la seguente espressione per formattarle:
new java.text.SimpleDateFormat("yyyyMMddHHmmss").format($P{SelectFromDateTime})
Come potete vedere a loro volta le variabili erano state costruite da uno dei parametri immessi nel report chiamante.

Spero che anche questa spiegazione sia utile. Se qualcosa non fosse chiaro usate i commenti per porre delle domande.
Alla prossima.

Wsc

6 commenti:

Anonimo ha detto...

Ciao ho letto il tuo commento..volevo chiederti una cosa.
Nel link ipertestuale dell'oggetto oltre al folder Riferimento c'è il folder Parametri Link...si dall'inizio ho pensato che questo folder servisse a passare i parametri al link chiamato separatemente evitando la pappardella sul folder riferimento.
Ma no ho capito come funziona o se serve proprio a questo...tu hai idea? Grazie

Wsc ha detto...

Purtroppo non ho mai usato questa funzione, ma la tua supposizione potrebbe essere valida.
Il sistema che ho illustrato mi è sempre sembrato troppo complesso e fumoso.

helyair ha detto...

Per essere sicuri che un parametro passato rispetti la codifica delle URL è meglio formattarlo correttamente usando questo metodo:
java.net.URLEncoder.encode($V{NOME_VARIABILE},"UTF-8")

Wsc ha detto...

Ringrazio helyair per il contributo aggiuntivo che ha inserito.

Anonimo ha detto...

La ringrazio per Blog intiresny

Anonimo ha detto...

leggere l'intero blog, pretty good