如何使用expression式设置SSRS中文本框的可见性?
我有一个计算列的小计字段,当我的报告还没有运行时,我想隐藏这个字段,因为没有数据的日子在报告中显示为NaN
。
我已经尝试了两种方法,但都没有工作,我相信它几乎是正确的。 我只是不知道expression方式有什么问题。
我试图隐藏,如果我的数据集没有行。
=IIf((CountRows("ScannerStatisticsData")=0),False,True)
我也试着做一个计算
=iif((fields!Scans.Value / fields!numberOfCases.Value) = 0, False, True)
我也尝试在计算中的某一列上检查isnothing
=iif(IsNothing(fields!Scans.Value), False, True)
我究竟做错了什么?
我尝试了你提供的例子,唯一的区别是你有True和False值作为@bdparrish
指出。 这里是一个工作示例,根据数据集中存在的行数显示或隐藏SSRS Texbox。 本示例使用SSRS 2008 R2
。
分步stream程: SSRS 2008 R2
-
在这个例子中,报告有一个名为
Items
的数据集,并有文本框来显示行数。 它还有另一个文本框,只有在数据集Items有行时才可见。 -
右键单击基于expression式应该可见/隐藏的文本框,然后select“
Text Box Properties...
。 请参阅截图# 1 。 -
在“
Text Box Properties
对话框中,单击左侧部分的“Visibility
”。 请参阅截图# 2 。 -
Show or hide based on an epxression
selectShow or hide based on an epxression
。 -
点击expression式button
fx
。 -
inputexpression式
=IIf(CountRows("Items") = 0 , True, False)
。 请注意,这个expression式是隐藏文本框( 隐藏 )。 -
单击确定两次closures对话框。
-
屏幕截图# 3显示了SQL Server表
dbo.Items
,这是报表数据集Items
的来源。 该表包含3行 。 屏幕截图# 4显示了针对数据的示例报告执行情况。 -
屏幕截图# 5显示了SQL Server表
dbo.Items
,这是报表数据集Items
的来源。 该表不包含数据 。 屏幕截图# 6显示了针对数据的示例报告执行情况。
希望有所帮助。
屏幕截图#1:
屏幕截图#2:
屏幕截图3:
屏幕截图#4:
屏幕截图5:
屏幕截图#6:
=IIf((CountRows("ScannerStatisticsData")=0),False,True)
应该换成
=IIf((CountRows("ScannerStatisticsData")=0),True,False)
因为可见性expression式设置了隐藏值。
这没有奏效
=IIf((CountRows("ScannerStatisticsData") = 0),False,True)
但是这样做,我不能解释为什么
=IIf((CountRows("ScannerStatisticsData") < 1),False,True)
猜测SSRS不喜欢相等的比较多于less于。
而不是这个
=IIf((CountRows("ScannerStatisticsData")=0),False,True)
当你想隐藏的时候只写expression式
CountRows("ScannerStatisticsData")=0
或者改变真假的顺序如下
=IIf((CountRows("ScannerStatisticsData")=0),True,False)
因为可见性expression式设置了隐藏值。 你可以在文本区域上面find
" Set expression for: Hidden "
改变你的虚假和真实的回报? 我想如果你把这些作为一个function放在可视区域,那么false将会显示它,true将不会显示它。
文本框的可见性取决于隐藏值
根据下面的例子,如果内部条件满足那么文本框隐藏function将为True否则如果条件失败,那么文本框隐藏function将是假的
=IIf((CountRows("ScannerStatisticsData") = 0), True, False)
Twood,“可见性”expression式就是您希望“可见性”performance的expression方式。 所以,如果你想隐藏或显示文本框,你想写这个:
=IIf((CountRows("ScannerStatisticsData")=0),True,False)
这意味着,如果数据集是0,则要隐藏文本框。