Обновление параметров отчета на основе выбора параметров? (Службы SSRS)
Я создал отчет в SSRS с двумя параметрами отчета. Я хотел бы, чтобы второй обновил его значения на основе выбора в первом. Первый-список агентов по продажам, а второй-список дистрибьюторов. Каждый агент может иметь много дистрибьюторов.
поэтому, если пользователь отчета выбирает агента, я хотел бы, чтобы только их дистрибьюторы отображались в списке для вторых параметров. Очевидно, что значения параметров будут поступать из запроса, но я не знаю, как сделать это список после выбора агента.
4 ответов
это работает автоматически, если вы правильно заказываете свои параметры и наборы данных
- сначала настройте основной набор данных (отчет), затем набор данных для каждого раскрывающегося списка параметров. Код
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 оценивает набор данных, необходимый для заполнения раскрывающегося списка для первого параметра метками. Он полагается на набор данных, который не нуждается в параметре, поэтому может быть создан немедленно.
затем, получив это значение параметра, он может заполнить раскрывающийся список второго параметра. Это, в свою очередь, приводит к подготовке доклада.
сначала вы создаете набор данных со списком элементов, из которых пользователь будет выбирать.
Select ID,Agentname from Agents Order by Agentname
затем вы создаете второй набор данных;
например. Select ID,ItemName from Orders where agentid=@agentid
в вашем параметре отчета вы нажимаете на параметр agentid, а затем из запроса на доступные значения. Вы выбираете dataset1 и ID как значение и AgentName как метку.
ваш последний набор данных будет фактическими данными. В этом вы создаете свое утверждение как :
Select Quantity, Amount From Orderdetails where OrderID=@orderid
в службе reporting service вы переходите к параметру и заданному порядку, чтобы получить значение из Dataset2
таким образом, порядок параметра должен быть agentid, orderid. Служба Reporting Service автоматически запросит параметр по заказу.
вам, скорее всего, потребуется создать общий источник данных для нескольких наборов данных
- сначала создайте отчет с запросом и полями, которые будут отображаться без каких-либо параметров. Таким образом, Вы сможете задать основной набор данных отчета.
- обновите запрос набора данных, добавив параметр. всегда использовать @ перед param_name
- на виде макета отчета щелкните правой кнопкой мыши и выберите параметры во всплывающем окне меню.
- список параметров будет автоматически иметь param_name без знака@.
- выберите параметр из списка и обновляем его свойства...
Если вы просмотрите отчет, он будет запрашивать значение, введенное для param_name перед просмотром отчета...
Теперь перейдите на вкладку Данные и добавьте новый набор данных.... назовите это dsPopParam
- запрос будет использоваться для заполнения параметр param_name.... нет параметры, необходимые здесь.
- повторите шаги с 3 по 5, но на шаге 5 обновите параметр свойства В разделе доступные значения, чтобы быть из запроса и выберите набор данных dsPopParam. Поля Value и Label будут полями, возвращенными из запроса dsPopParam.
- выберите вкладку Вид еще раз и обратите внимание на этот раз выпадающий список, содержащий список параметров....
важное замечание: в случае, если отчет не предоставляете или исключение, просто переключитесь на вкладку "Данные" выберите набор данных отчета, и выполнить запрос, вам будет предложено ввести значение для param_name...введите его и выполните... затем перейдите на вкладку preview и
Я не пробовал это сам, но я видел пример, когда они настроили доступные значения для запроса, а затем использовали выражение для указания запроса. Выражение включало значение первого параметра.