Как да потискам празни подотчети в SSRS 2008

Създавам „основен“ отчет в SSRS 2008, който съчетава други отчети за дадено лице. Понякога не всички други отчети са подходящи и като такива не връщат нищо. Бих искал да мога да изключа това от основния отчет, така че да не оставя празна страница.

Наясно съм с функцията „без редове-съобщение“, но цяла страница с просто „Неприложимо за този човек“ едва ли е най-доброто решение!

По същество търся начин да определя дали даден подотчет е „празен“ и да го използвам в израз за видимост.

Всяка помощ е много ценена


person Brian    schedule 17.06.2009    source източник


Отговори (2)


Добре, сега разбрах това. Отговорът е да поставите подотчета в правоъгълник. След това задайте видимостта на правоъгълника на нещо подобно:

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

Където [SOMEDATASET] е набор от данни, попълнен по същия начин като този, попълващ подотчета. След това, ако подотчетът е празен, тогава [SOMEDATASET] също ще бъде празно и по-точно полето [SOMEFEILD] ще бъде равно на NOTHING.

Бада-Бинг! Един отчет, който не е претрупан с празни страници, които губят хартия.

Забележка: има един лош страничен ефект от този подход, тъй като SQL сървърът ще изпраща една и съща информация два пъти, веднъж за попълване на набора от данни на подотчета и отново за попълване на дублирания набор от данни в отчета. За мен това е приемливо, други може да искат да знаят за това.

person Brian    schedule 17.06.2009
comment
Добра работа. (буфер за покриване на ограничението от 15 знака) - person jgallant; 17.06.2009
comment
След като обмислях проблема по време на обедната си почивка, реших, че връщането на едни и същи данни два пъти никога не е добра идея. Ще напиша съхранена процедура, която връща само броя на редовете на запаметените процедури, използвани за попълване на подотчетите. След това тествайте, за да видите дали тези преброявания са 0 или не, и съответно задайте видимостта на съответните подотчети. - person Brian; 17.06.2009
comment
благодаря за идеята, трябваше да оцветя клетка в отчета на табликса, ако подотчетът не връща нищо. Така че просто поставих подотчет в правоъгълник и зададох цвета на фона на правоъгълника на сив. Дори не трябваше да използвам изрази, тъй като SSRS по подразбиране не връща нищо, ако подотчет не връща нищо. Единственият проблем, който имах, когато отпечатах отчета си, не показваше отпечатани сиви клетки или в PDF (но го показваше на екрана), така че просто зададох текст без редове за подотчет на =CHR(32) и свърши работа . Благодаря за идеята! - person mishkin; 27.12.2012
comment
Това решение не работи за мен, защото първият действителен отчет не е празен. Моят табликс използва груповата функционалност и само определени обекти в групата имат данни от отчетите, които трябва да покажа. Всичко изглежда добре е, че се генерира празна страница за груповите стойности, които нямат данни от този отчет. Някакви идеи как да скриете подотчета, когато данните са празни за избраната група? Опитах опцията за групова видимост, но все още експортира (PDF) празна страница. - person Victor_Tlepshev; 07.02.2019

Това решение работи за мен според очакванията, елиминирайки хипервръзката към подпота. В менюто «Действие» в секцията, където посочвате името на подотчета:

=iif(fields!SomfieldName.Value <> Nothing, "YourSubReportName",Nothing)

Просто и лесно решение!

person Amazigh.Ca    schedule 13.09.2018