Исключить скрытую строку таблицы из общего количества

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

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

Я что-то упустил, или это недостаток MS Reporting Services?


person Rob1n    schedule 17.04.2009    source источник


Ответы (3)


Это похоже на «особенность» SSRS, по-видимому, потому, что она вычисляет значения в верхних и нижних колонтитулах таблицы перед отображением раздела сведений таблицы данных.

Один из способов обойти это — добавить в набор данных производный логический столбец (при условии, что источником данных является SQL Server, используя оператор CASE или аналогичный), показывающий, следует ли исключить строку из таблицы, где требуется фильтр.

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

=SUM(Iif(Fields!ExcludeRow.Value = True,0,Fields!ValueToSum.Value))
person Ed Harper    schedule 17.04.2009
comment
Великолепно! Большое спасибо. Я никогда не думал о том, чтобы поместить iif() внутри sum(). Мне даже не пришлось менять запрос. Мой фильтр проверял только пустые заголовки, поэтому, просто поместив фильтр в iif, проблема была решена. - person Rob1n; 17.04.2009

Это скорее вопрос, чем ответ...

Как решить эту проблему, если вы знаете, скрыта ли строка или нет ТОЛЬКО на уровне группы строк?

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

пример: у меня есть отчет о старении AR, в котором есть итоги по месяцам, пациентам. Мне нужно отфильтровать отрицательные итоги по пациентам (группа строк пациентов), но у меня также есть группы столбцов - за месяц, поэтому мой набор данных не может быть гранулярным для каждого пациента и, следовательно, единственное место, где SSRS может решить, следует ли скрыть или показать строка находится на уровне группы строк...

person Aedna    schedule 24.11.2009

У меня была та же проблема, но у меня было слишком много итоговых столбцов, где нужно было ввести Iif(). Я решил эту проблему, удалив фильтр из группы и поместив фильтр в диалоговое окно «Свойства табликса» (выберите «Табликс», щелкните правой кнопкой мыши серое поле в левом верхнем углу и выберите «Свойства табликса»).

person Roberto D    schedule 27.09.2013