Обновление параметров отчета на основе выбора параметров? (SSRS)
Я создал отчет в SSRS с двумя параметрами отчета. Я бы хотел, чтобы второй обновил его значения на основе выбора в первом. Первый - это список агентов по продажам, а второй - список дистрибьюторов. У каждого агента может быть много дистрибьюторов.
Поэтому, если пользователь отчета выбирает агента, я бы хотел, чтобы только его распространители отображали в списке для вторых параметров. Очевидно, значения параметров будут получены из запроса, но я не знаю, как заставить его перегруппировать список после выбора агента.
Ответы
Ответ 1
Это работает автоматически, если вы правильно заказываете свои параметры и наборы данных
- Сначала настройте первичный (отчет) набор данных, затем набор данных для каждого раскрывающегося списка параметров. Кодируйте предложение
WHERE
в наборах данных, чтобы сделать зависимости правильными для переменных параметров.
- Во-вторых, закажите свои параметры в отчете | Меню параметров, чтобы первая переменная/параметр, который вы хотите, чтобы пользователь заполнил, находится вверху, а второй набор данных зависит от этого параметра. Следуйте этому порядку с помощью параметров; конечным параметром (параметрами) должен быть тот (ы), от которого зависит фактический набор данных отчета.
- Повторить для последующих параметров
Это будет работать, если ваше предложение 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 оценивает набор данных, необходимый для заполнения раскрывающегося списка для первого параметра с помощью меток. Он полагается на набор данных, который не нуждается в параметре, поэтому его можно создать немедленно.
Затем, получив это значение параметра, он может заполнить всплывающее окно второго параметра. Это, в свою очередь, приводит к подготовке отчета.
Ответ 2
Сначала вы создаете набор данных со списком элементов, который будет выбирать пользователь.
Select ID,Agentname from Agents Order by Agentname
Затем вы создаете второй набор данных;
например. Select ID,ItemName from Orders where [email protected]
В вашем паразитете отчета вы нажимаете на параметр agentid, а затем из запроса на доступные значения. Вы выбираете dataset1 и ID как значение, а AgentName - как метку.
Ваш последний набор данных будет фактическими данными. В этом случае вы создаете свое утверждение следующим образом:
Select Quantity, Amount From Orderdetails where [email protected]
В службе отчетов вы переходите к параметру и заданному порядку для получения значения из Dataset2
Таким образом, параметр параметра должен быть agentid, orderid. Служба отчетов автоматически запрашивает параметр по порядку.
Ответ 3
Вам, скорее всего, потребуется создать общий источник данных для нескольких наборов данных
- Сначала создайте отчет с запросом и полями, которые будут отображаться без каких-либо параметров. Таким образом, вы сможете установить основной набор данных отчета.
- обновить запрос набора данных, добавив параметр. всегда используйте @перед param_name
- в представлении макета отчета, щелкните правой кнопкой мыши и выберите параметры во всплывающем меню.
- список параметров автоматически будет иметь имя параметра без знака @.
- выберите параметр из списка и обновите его свойства...
-
если вы просмотрите отчет, он попросит ввести значение param_name перед просмотром отчета...
-
перейдите на вкладку данных и добавьте новый набор данных.... назовите его dsPopParam
- запрос будет использоваться для заполнения параметра param_name.... никаких параметров здесь нет.
- повторите шаги с 3 по 5, но на шаге 5 обновите параметр свойства в разделе Доступные значения от запроса и выберите набор данных dsPopParam. Поля значения и метки будут полями, возвращаемыми из запроса dsPopParam.
- снова выберите вкладку просмотра и обратите внимание на это выпадающее меню, содержащее список параметров....
Важное примечание: если отчет не отображается или исключение не было выбрано, просто перейдите на вкладку данных еще раз, выберите набор данных отчета и выполните запрос, вам будет предложено ввести значение для param_name... введите его и выполните его... затем перейдите на вкладку предварительного просмотра и
Ответ 4
Я сам этого не пробовал, но я увидел пример, когда они настроили доступные значения, полученные из запроса, а затем использовали выражение для указания запроса. Выражение включало значение первого параметра.