Как установить видимость текстового поля в SSRS с помощью выражения?
У меня есть поле промежуточного итога для вычисленного столбца, который я хочу скрыть, когда мой отчет еще не запущен, потому что в дни без данных он отображается как NaN
в отчете.
Я пробовал два метода, но ни один из них не работает, и я уверен, что он почти прав. Я просто не знаю, что не так с выражением.
Я попытался скрыться, если у моего набора данных не было строк.
=IIf((CountRows("ScannerStatisticsData")=0),False,True)
Я также попытался сделать расчет
=iif((fields!Scans.Value / fields!numberOfCases.Value) = 0, False, True)
Я также пробовал проверить, нет ли на одном из столбцов в расчете
=iif(IsNothing(fields!Scans.Value), False, True)
Что я делаю неправильно?
Ответы
Ответ 1
Это не сработало
=IIf((CountRows("ScannerStatisticsData") = 0),False,True)
но это произошло, и я не могу объяснить, почему
=IIf((CountRows("ScannerStatisticsData") < 1),False,True)
Угадайте, что SSRS не любит равных сравнений меньше чем.
Ответ 2
Я попробовал пример, который вы предоставили, и единственное различие заключается в том, что вы указали значения True и False, как указывал @bdparrish
. Ниже приведен рабочий пример создания видимой или скрытой SSRS Texbox в зависимости от количества строк, присутствующих в наборе данных. В этом примере используется SSRS 2008 R2
.
Шаг за шагом: SSRS 2008 R2
-
В этом примере отчет имеет набор данных с именем Items
и имеет текстовое поле для отображения количества строк. Он также имеет еще одно текстовое поле, которое будет видно только в том случае, если элементы набора данных имеют строки.
-
Щелкните правой кнопкой мыши текстовое поле, которое должно быть видимым/скрытым на основе выражения и выберите Text Box Properties...
. См. Снимок экрана # 1.
-
В диалоговом окне Text Box Properties
нажмите Visibility
в левом разделе. См. Снимок экрана # 2.
-
Выберите Show or hide based on an epxression
.
-
Нажмите кнопку выражения fx
.
-
Введите выражение =IIf(CountRows("Items") = 0 , True, False)
. Обратите внимание, что это выражение относится к скрывать текстовое поле (скрыто).
-
Дважды нажмите OK, чтобы закрыть диалоги.
-
Снимок экрана # 3 показывает данные в таблице SQL Server dbo.Items
, которая является источником набора данных отчета Items
. Таблица содержит 3 строки. Снимок экрана # 4 показывает пример выполнения отчета по данным.
-
Снимок экрана # 5 показывает данные в таблице SQL Server dbo.Items
, которая является источником для набора данных отчета Items
. Таблица содержит нет данных. Снимок экрана # 6 показывает пример выполнения отчета по данным.
Надеюсь, что это поможет.
Снимок экрана №1:
![1]()
Снимок экрана №2:
![2]()
Снимок экрана №3:
![3]()
Снимок экрана №4:
![4]()
Снимок экрана № 5:
![5]()
Снимок экрана № 6:
![6]()
Ответ 3
=IIf((CountRows("ScannerStatisticsData")=0),False,True)
Следует заменить на
=IIf((CountRows("ScannerStatisticsData")=0),True,False)
потому что выражение Видимость устанавливает значение "Скрытое".
Ответ 4
вместо этого
=IIf((CountRows("ScannerStatisticsData")=0),False,True)
напишите только выражение, если вы хотите скрыть
CountRows("ScannerStatisticsData")=0
или измените порядок истинных и ложных мест, как показано ниже
=IIf((CountRows("ScannerStatisticsData")=0),True,False)
потому что выражение Видимость устанавливает значение "Скрытое". что вы можете найти над текстовой областью как
" Set expression for: Hidden "
Ответ 5
Включить ложные и истинные возвращения? Я думаю, что если вы поместите их как функцию в область видимости, тогда false покажет ее, и true не покажет ее.
Ответ 6
Видимость текстового поля зависит от скрытого значения
В соответствии с приведенным ниже примером, если внутреннее условие удовлетворяет, тогда текстовое поле. Скрытая функциональность будет True else, если условие терпит неудачу, а затем текстовое поле. Скрытая функциональность будет False
=IIf((CountRows("ScannerStatisticsData") = 0), True, False)
Ответ 7
Twood, выражение Visibility - это выражения, которые вы пишете о том, как вы хотите, чтобы "видимость" вела себя. Итак, если вы хотите скрыть или показать текстовое поле, вы должны написать это:
=IIf((CountRows("ScannerStatisticsData")=0),True,False)
Это означает, что если набор данных равен 0, вы хотите скрыть текстовое поле.