Это работает автоматически, если вы правильно упорядочиваете свои параметры и наборы данных
- Сначала настройте основной набор данных (отчет), затем набор данных для каждого раскрывающегося списка параметров. Закодируйте предложение
WHERE
в наборах данных, чтобы сделать корректными зависимости между переменными параметров
- Во-вторых, закажите ваши параметры в отчете | Меню параметров так, чтобы переменная / параметр first , которую вы хотите заполнить пользователем, находилась сверху, а второй набор данных зависел от этого параметра. Следуйте этому порядку через параметры; последние параметры должны быть теми, от которых зависит фактический набор данных отчета.
- Повторите для последующих параметров
Это будет работать, если ваше предложение WHERE
во втором и последующих наборах данных содержит переменные, которые, как известно SSRS, заполняются из более ранних параметров.
Например, у меня есть три набора данных из почтенной базы данных pubs
(образец 2000 года).
pubslist
используется для заполнения параметра @p и выглядит следующим образом:
select pub_id, pub_name from publishers
titleslist
заполняет параметр @t и выглядит так:
select title_id, title from titles where pub_id = @p
Наконец, reportdataset
выглядит так:
select title, price, ytd_sales from titles where title_id = @t
Порядок параметров в меню Report | Report Parameters
имеет решающее значение; поскольку наборы данных должны выполняться в указанном выше порядке, а параметр @t находится в наборе данных, основанном на параметре @p, который устанавливается первым, мы перемещаем @p в начало списка.
Теперь SSRS оценивает набор данных, необходимый для заполнения раскрывающегося списка для первого параметра метками. Он основан на наборе данных, который не нуждается в параметре, поэтому может быть создан немедленно.
Затем, получив значение этого параметра, он может заполнить раскрывающийся список второго параметра. Это в свою очередь приводит к созданию отчета.