#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.