Обновление параметров отчета на основе выбора параметров? (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

Я сам этого не пробовал, но я увидел пример, когда они настроили доступные значения, полученные из запроса, а затем использовали выражение для указания запроса. Выражение включало значение первого параметра.