SSRS — Как подсчитать значения в столбце, сгенерированном выражением?

#reporting-services #ssrs-tablix

#службы отчетов #ssrs-tablix

Вопрос:

В моем отчете SSRS у меня есть столбец с именем permit_status. Этот столбец имеет значение, сгенерированное выражением (т. Е. Оно берется из пользовательского кода). Значение permit_status вычисляется построчно.

Требуется отобразить сумму различных значений, отображаемых в столбце permit_status, и экспортировать это в Excel. Значения являются «Утвержденными», «ожидающими» и т.д. Мне просто нужна одна ячейка, показывающая общее количество для каждого значения.

Я могу создать нижний колонтитул для этого отчета, который использует Sum(…), например:

 =Sum(IIF(ReportItems!permit_status.Value = "Approved", 1, 0))
  

Однако это показывает только сумму «Утвержденных» значений для этой страницы отчета, а не для всего отчета. (И я что-то упускаю, поскольку он не экспортируется в Excel.)

Каков наилучший способ суммирования ReportItems!column_name.Значение в общем итоге?

Ответ №1:

В вашей матрице добавьте группу столбцов на основе permit_status (чтобы каждый столбец содержал одно доступное уникальное значение). щелкните правой кнопкой мыши по самому левому полю в вашей строке, а затем выберите добавить итог, после чего измените это выражение поля на count(Поля!permit_status.Значение)

Ответ №2:

Насколько я понимаю ваш вопрос, вы хотите подсчитать количество «Утвержденных», «ожидающих» и т. Д. Значений…. Для этого существуют разные способы. Самый простой способ без изменения структуры вашего табликса — это выражение:

Либо для одной ячейки:

 ="Approved: " amp; Sum(IIF(ReportItems!permit_status.Value = "Approved", 1, 0)) amp; " / " amp;
 "Pending: "  amp; Sum(IIF(ReportItems!permit_status.Value = "Pending", 1, 0))
 'And so on...
  

Или более ячеек:

 'Cell 1
="Approved: " amp; Sum(IIF(ReportItems!permit_status.Value = "Approved", 1, 0))
'Cell 2
="Pending: "  amp; Sum(IIF(ReportItems!permit_status.Value = "Pending", 1, 0))
  

Комментарии:

1. Это дает общее значение только для одной страницы отчета. Мне нужно общее количество для всех страниц. Сообщение обновлено для уточнения..

2. Тогда ваша строка в вашей таблице / матрице находится в неправильной области. Добавьте строку табликса / матрицы, которая находится за пределами группы выше / ниже.

Ответ №3:

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

 IIF(ReportItems!permit_status.Value = "Approved", 1, 0)
IIF(ReportItems!permit_status.Value = "Pending", 1, 0)
  

Затем в конце набора данных просто добавьте общее количество, как описано здесь. ЭТО даст вам желаемый результат

Комментарии:

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

2. Вы попробовали, потому что эти 2 дополнительных столбца добавят в строку 1 или 0, и для вас это будет целое число, которое подведет итог вашим результатам.

3. Да, я сделал. Добавить итог — это не вариант, потому что он рассматривает его как выражение, а не как int.