Detta fungerar automagiskt om du beställer dina parametrar och datauppsättningar korrekt
- Först ställer du in en primär (rapport) datamängd, sedan en datamängd för varje parameteruppsättning. Koda
WHERE
sats i datamängderna för att göra beroenden korrekta över parametervariabler - För det andra, beställ dina parametrar i rapporten | Parametrar-menyn så att den första variabel/parameter som du vill att användaren ska fylla i är överst, och gör att den andra datamängden beror på den parametern. Följ denna ordning genom parametrarna; de slutliga parametrarna bör vara de som den faktiska rapportdatauppsättningen beror på.
- Upprepa för efterföljande parametrar
Detta kommer att fungera om din WHERE
satsen i den andra och efterföljande datamängden har variabler som SSRS vet är ifyllda från tidigare parametrar.
Som ett exempel har jag tre datamängder från de ärevördiga pubs
databas (exempel 2000).
pubslist
används för att fylla i parametern @p och ser ut så här:
select pub_id, pub_name from publishers
titleslist
fyller i @t-parametern och ser ut så här:
select title_id, title from titles where pub_id = @p
Slutligen, reportdataset
ser ut så här:
select title, price, ytd_sales from titles where title_id = @t
Ordningen på parametrarna i Report | Report Parameters
menyn är avgörande; eftersom datamängderna måste köras i den ordning som visas ovan, och @t-parametern finns i en datauppsättning som förlitar sig på att @p-parametern ställs in först, flyttar vi @p till toppen av listan.
Nu utvärderar SSRS den datauppsättning som behövs för att fylla rullgardinsmenyn för den första parametern med etiketter. Den förlitar sig på en datauppsättning som inte behöver en parameter, så den kan produceras omedelbart.
Sedan, efter att ha fått det parametervärdet, kan den fylla i den andra parameterns rullgardinsmeny. Det resulterar i sin tur i att rapporten tas fram.