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