SSRS — передача нескольких значений в фильтр во вложенном отчете

#sql #reporting-services

#sql #службы отчетов

Вопрос:

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

У меня есть отчет, в котором подробно описываются действия, предпринятые членами команды. Каждое действие представляет собой строку в исходном наборе данных.

Первая страница отчета

Сначала у меня есть два итога, которые являются детализацией к вложенному отчету, отображающему все строки данных.

Ниже приведена таблица, в которой указаны каждый отдел, команда и член команды, а также количество предпринятых действий соответственно.

Значения, выделенные желтым цветом, указывают на детализацию во вложенном отчете и предназначены для возврата только той команды / отдельного лица, которая была отфильтрована.

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

На данный момент я могу корректно возвращать данные для отдельных людей, но детализация не работает для команды, отдела и полного общего уровня.

При детализации действия к вложенному отчету у меня есть следующее:

  • pStartDate (@pStartDate)
  • pEndDate (@pEndDate)
  • pDispatchPerson [Диспетчер] — поле в исходном наборе данных

И затем в вложенном отчете есть параметр с именем pDispatchPerson, для которого установлены значения «Скрытый» и «Разрешить несколько значений».

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

Вот некоторые вещи, которые я пробовал:

  • Создание параметра для диспетчера в основном отчете и установка значения по умолчанию в [DispatchPerson] в наборе данных. Затем установите для параметра action значение pDispatchPerson [@pDispatchPerson] и установите фильтр для вложенного отчета на [DispatchPerson] В [@pDispatchPerson]. Это не возвращает никаких данных.

  • Использование РАЗДЕЛЕНИЯ и ОБЪЕДИНЕНИЯ как в действии на кнопке детализации, так и в фильтре во вложенном отчете. Это приводит к возникновению ошибки, поскольку, похоже, он не знает, какое значение присвоить pDispatchPerson.

Я пробовал комбинацию из вышеперечисленных в разных случаях, но все равно безуспешно.

Любая помощь будет с благодарностью принята.

Иордания

Ответ №1:

Я бы изменил ваш вложенный отчет, чтобы принять два параметра: один для человека и один для команды.

В запросе набора данных для вашего вложенного отчета предложение WHERE будет содержать логику для выбора правильных записей. например

 SELECT * 
    FROM myTable a 
    WHERE (
           (a.TeamID = @TeamID AND @PersonID IS NULL)
           OR
           (a.PersonID = @PersonID AND @TeamID IS NULL)
          )
  

В основном отчете просто передайте соответствующее значение параметра (идентификатор команды или пользователя) и установите для другого значения значение null.