2009-06-17 2 views
7

Я создаю «главный» отчет в SSRS 2008, который сотрудничает с другими отчетами о человеке. Иногда не все другие отчеты актуальны и как таковые не возвращают ничего. Я хотел бы исключить это из основного отчета, чтобы он не оставил пустой страницы.Как подавить пустые вложенные записи в SSRS 2008

Я знаю о функции «no-rows-message», но целая страница с просто «не применима для этого человека» вряд ли является лучшим решением!

По сути, я ищу способ определить, является ли подчиненный «пустой», и использовать его в выражении видимости.

Любая помощь наиболее ценится

ответ

13

ОК, так что я получил это понял, в настоящее время. Ответ заключается в том, чтобы поместить субрепорт в прямоугольник. Затем установите видимость прямоугольника на что-то вроде этого:

=IIF(First(Fields![SOMEFEILD].Value, "[SOMEDATASET]") IS NOTHING, TRUE, FALSE) 

Где [SOMEDATASET] является набор данных заполняется таким же образом, как один Наполнение подотчет. Тогда, если вложенный отчет пуст, то [SOMEDATASET] также будет пустым, и больше к точке, поле [SOMEFEILD] будет равно NOTHING.

Bada-Bing! Один отчет, который не загроможден бумажными пустыми страницами.

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

+0

Хорошая работа. (буфер для удовлетворения 15 символов) – jgallant

+3

После размышления над проблемой во время обеденного перерыва я решил, что возвращение одних и тех же данных дважды * никогда * хорошая идея. Я собираюсь написать хранимую процедуру, которая возвращает только количество строк хранимых процедур, используемых для заполнения подписок. Затем проверьте, соответствуют ли эти значения 0 или нет, и соответственно установите видимость соответствующих подзаголовков. – Brian

+2

спасибо за идею, мне нужно было оторвать ячейку в отчете tablix, если subreport ничего не возвращает. Поэтому я просто помещаю субрепортаж в прямоугольник и устанавливаю цвет фона прямоугольника в серый. Мне даже не пришлось использовать выражения, поскольку SSRS по умолчанию ничего не возвращает, если в подрепорте ничего не возвращается. Единственная проблема, с которой я столкнулся, когда печатал свой отчет, не показывал напечатанную серой ячейкой или в формате PDF (но отображал ее на экране), поэтому я просто установил текст без строк для подзаголовка = CHR (32), и это сделало трюк , Спасибо за идею! – mishkin