Questo funziona automagically se ordinate i parametri e set di dati in modo corretto
- In primo luogo, impostare un set di dati primaria (relazione), poi un set di dati per ogni parametro a discesa. Codificare la clausola
WHERE
nei set di dati per rendere corrette le dipendenze tra le variabili dei parametri
- In secondo luogo, ordinare i parametri nel report | Menu parametri in modo che la variabile che si desidera venga riempita dall'utente sia in cima e che il secondo set di dati dipenda da quel parametro. Segui questo ordine attraverso i parametri; il/i parametro/i finale/i deve/devono essere (i) il (i) da cui dipende il set di dati effettivo del report.
- Ripetere l'operazione per i parametri successivi
Ciò funzionerà se la clausola WHERE
nella seconda e le successive serie di dati variabili che hanno SSRS conosce sono popolate dai parametri precedenti.
Ad esempio, ho tre set di dati dal venerabile database pubs
(esempio nel 2000).
pubslist
viene utilizzato per popolare il parametro @p, e assomiglia a questo:
select pub_id, pub_name from publishers
titleslist
popola il parametro @t, e assomiglia a questo:
select title_id, title from titles where pub_id = @p
Infine, reportdataset
assomiglia this:
select title, price, ytd_sales from titles where title_id = @t
Il l'ordine dei parametri nel menu Report | Report Parameters
è cruciale; poiché i set di dati devono essere eseguiti nell'ordine mostrato sopra e il parametro @t si trova in un set di dati che si basa sul parametro @p impostato per primo, spostiamo @p all'inizio dell'elenco.
Ora, SSRS valuta il set di dati necessario per compilare il menu a discesa per il primo parametro con le etichette. Si basa su un set di dati che non ha bisogno di un parametro, quindi può essere prodotto immediatamente.
Quindi, ottenuto quel valore di parametro, può popolare il menu a tendina del secondo parametro. Ciò a sua volta porta alla produzione del report.
Jeremy, puoi puntare ad un esempio di quello, o includerne uno nella risposta? Grazie. –
Ok, questo è quello che ho fatto: ho due parametri, @SalesRep e @Distributor (entrambi sono stringhe). Ora il Dataset per il rappresentante di vendita è solo una query.Ma il set di dati per il parametro di distribuzione è una query come segue: SELECT [cliente] AS ID, [Nome cliente] AS Nome presso i distributori Dove [Agente di vendita] = @ SalesRep ORDER BY Nome nota la dipendenza sul parametro @SalesRep. Nei parametri del report, assicurarsi che @SalesRep sia ordinato sopra @Distributor. –
Sì, ce l'hai. Il parametro più in alto deve essere il set di dati senza dipendenze. Produce il set di dati per popolare il secondo parametro e così via. –