Query con parametri dinamici in Reporting Services
Può capitare di realizzare un report dinamico, che abbia bisogno di ricevere i dati da un metodo cha abbia diversi argomenti. Per ogni argomento del metodo si dovrà passare un parametro che andrà ad aggiungersi alla query di chiamata. Per fare ciò, si devono creare dei Report Parameters, uno per ogni argomento del metodo. Per crearli, dobbiamo andare nella finestra Reports Parameters che è accessibile dal menù Report di Visual Studio. Un'impostazione che vorrei evidenziare è il flag Hidden, che nel caso non venisse settato renderebbe il parametro visibile e modificabile anche dalla tollbar del ReportViewer.

Una volta creati i Report Parameters si devono creare i Parameter che finiranno nella query per il recupero dei dati. Nella finestra dove viene settata la query è presente un tab chiamato Parameters, da dove è possibile aggiungerli. Per rendere dinamici questi parametri si deve porre come Name del parametro il nome dell'argomento del metodo corrispondente e come Value il valore del Report Parameter appositamente creato.
es:
Name --> Arg
Value --> =Parameters!TestParameter.Value
Creati anche questi parametri, sarà possibile chiamare il report appena creato aggiungendo nell'url un carattere "&" (e commerciale) seguito dal nome del parametro (Report Parameter) e dal rispettivo valore, e questo per ogni parametro creato.
es:
...&TestParameter=pippo
url: ...ReportViewer.aspx?/ReportsCustomObject/XmlReport&rs:Command=Render&TestParameter=pippo
Questo sistema è valido anche nel caso volessimo filtrare i dati ricevuti dall'esecuzione della query. Richiamare i report passando dei parametri dinamici ha il vantaggio di rendere i reports più flessibili e aggiunge la possibilità di visualizzare dati differenti (solo come valore, non come struttura) sfruttando un'unica fonte dati.
indietro