Creare Reports Multi-Datasource con Reporting Services 2005
Lo scenario è dei più ricorrenti: si ha un’applicazione che può accedere a vari database, e gli schemi dei database sono identici. Si vogliono creare dei reports, condivisi, che possano attingere dati dal database prescelto dall’utente.
Solitamente si possono trovare applicazioni di questo tipo nel mondo gestionale, dove in ogni database sono racchiusi i dati relativi ad una ditta.
Ovviamente, la strada di duplicare un report per ogni database, non è percorribile, e quindi bisongna sondare altre possibilità.
Reporting services non ci viene molto in aiuto in questo senso, perché non è possibile, una volta creato un report ed assegnato a questo uno shared Data Source, cambiarlo al volo. L’idea di creare una serie di data source condivisi e di caricarli a seconda della ditta poteva essere interessante, ma non è praticabile, neppure lavorando con il web service a basso livello. Come fare dunque?
Beh, la soluzione è veramente molto semplice. Reporting Services 2005 ha reso parametrico tutto all’interno di un report, e con tutto intendo anche la stringa di connessione, che è parametrizzabile attraverso una funzione, esattamente come qualunque altro campo del report. Attenzione però! Il data source deve essere all’interno del Report e non condiviso. Non è possibile, ovviamente, passare parametri ad un data source, essendo i parametri di pertinenza del Report.
Agendo in questa schermata, quindi, è possibile costruire la stringa di connessione a partire da un parametro, che potrebbe anche essere semplicemente il nome del database, il nome dell’utente e la password dell’utente stesso.

Questo piccolo tip rende possibile l’utilizzo di reporting services anche in ambienti dove per attingere ai dati richiesti la stringa di connessione deve per forza di cose essere parametrica.
indietro