Как подавить пустые вложенные отчеты в SSRS 2008
-
06-07-2019 - |
Вопрос
Я создаю "главный" отчет в SSRS 2008, который объединяет другие отчеты о человеке.Иногда не все другие отчеты являются релевантными и поэтому ничего не возвращают.Я хотел бы иметь возможность исключить это из основного отчета, чтобы он не оставлял пустую страницу.
Я знаю о функции "сообщений без строк", но целая страница с простым "Неприменимо для этого человека" вряд ли является лучшим решением!
По сути, я ищу способ определить, является ли вложенный отчет "пустым", и использовать это в выражении видимости.
Любая помощь будет очень ценна
Решение
Итак, теперь я все понял.Ответ заключается в том, чтобы поместить вложенный отчет в прямоугольник.Затем установите видимость прямоугольника примерно на это:
=IIF(First(Fields![SOMEFEILD].Value, "[SOMEDATASET]") IS NOTHING, TRUE, FALSE)
Где [SOMEDATASET]
это набор данных, заполняемый таким же образом, как и тот, который заполняет вложенный отчет.Тогда, если вложенный отчет пуст, то [SOMEDATASET]
также будет пустым, и, что более важно, поле [SOMEFEILD]
будет равно NOTHING
.
Бада-Бинг!Один отчет, который не загроможден бумажными пустыми страницами.
Примечание:у этого подхода есть один плохой побочный эффект, заключающийся в том, что SQL-сервер будет отправлять одну и ту же информацию дважды, один раз для заполнения набора данных вложенного отчета и снова для заполнения дублирующегося набора данных в отчете.Для меня это приемлемо, другие, возможно, захотят знать об этом.
Другие советы
Это решение сработало для меня, как и ожидалось, исключив гиперссылку на подотчет. В & # 171; Действие & # 187; меню в разделе, где вы указываете имя подотчета:
=iif(fields!SomfieldName.Value <> Nothing, "YourSubReportName",Nothing)
Простое и легкое решение!