Isso funciona automaticamente se você ordenar seus parâmetros e conjuntos de dados corretamente
- Primeiro, configure um conjunto de dados primário (relatório) e, em seguida, um conjunto de dados para cada menu suspenso de parâmetro. Codifique o
WHERE
cláusula nos conjuntos de dados para corrigir as dependências nas variáveis de parâmetro - Em segundo lugar, ordene seus parâmetros no Relatório | Menu de parâmetros para que o primeiro variável/parâmetro que você deseja que o usuário preencha está na parte superior e faz com que o segundo conjunto de dados dependa desse parâmetro. Siga esta ordenação através dos parâmetros; os parâmetros finais devem ser aqueles dos quais o conjunto de dados do relatório real depende.
- Repita para parâmetros subsequentes
Isso funcionará se o seu
WHERE
cláusula no segundo e nos conjuntos de dados subsequentes têm variáveis que o SSRS sabe que são preenchidas a partir de parâmetros anteriores. Como exemplo, tenho três conjuntos de dados dos veneráveis
pubs
banco de dados (amostra em 2000). pubslist
é usado para preencher o parâmetro @p e se parece com isso: select pub_id, pub_name from publishers
titleslist
preenche o parâmetro @t e fica assim: select title_id, title from titles where pub_id = @p
Por fim,
reportdataset
se parece com isso: select title, price, ytd_sales from titles where title_id = @t
A ordem dos parâmetros no
Report | Report Parameters
menu é crucial; como os conjuntos de dados devem ser executados na ordem mostrada acima e o parâmetro @t está em um conjunto de dados que depende do parâmetro @p ser definido primeiro, movemos @p para o topo da lista. Agora, o SSRS avalia o conjunto de dados necessário para preencher a lista suspensa do primeiro parâmetro com rótulos. Ele se baseia em um conjunto de dados que não precisa de um parâmetro, portanto, pode ser produzido imediatamente.
Então, tendo obtido esse valor de parâmetro, ele pode preencher o menu suspenso do segundo parâmetro. Isso, por sua vez, resulta na produção do relatório.