[英]How do I set the visibility of a text box in SSRS using an expression?
我有一个计算列的小计字段,我想在我的报告尚未运行时隐藏它,因为在没有数据的日子里,它在报告中显示为NaN
。
我尝试了两种方法,但都没有奏效,我相信它几乎是正确的。 我只是不知道表达式有什么问题。
如果我的数据集没有行,我尝试隐藏。
=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
。
分步过程: SSRS 2008 R2
在此示例中,报表有一个名为Items
的数据集,并有一个显示行数的文本框。 它还有另一个文本框,仅当数据集 Items 有行时才可见。
右键单击应该基于表达式可见/隐藏的文本框和 select Text Box Properties...
请参阅屏幕截图# 1 。
在“ Text Box Properties
对话框中,单击左侧部分的“ Visibility
”。 参考截图# 2 。
Select Show or hide based on an epxression
。
单击表达式按钮fx
。
输入表达式=IIf(CountRows("Items") = 0, True, False)
。 请注意,此表达式是隐藏文本框(隐藏)。
单击确定两次关闭对话框。
屏幕截图# 3显示了 SQL 服务器表dbo.Items
中的数据,它是报告数据集Items
的源。 该表包含3 行。 屏幕截图 # 4显示了针对数据执行的示例报告。
屏幕截图 # 5显示 SQL 服务器表dbo.Items
中的数据,它是报告数据集Items
的源。 该表不包含任何数据。 屏幕截图 # 6显示了针对数据执行的示例报告。
希望有帮助。
截图#1:
截图#2:
截图#3:
截图#4:
截图#5:
截图#6:
=IIf((CountRows("ScannerStatisticsData")=0),False,True)
应该替换为
=IIf((CountRows("ScannerStatisticsData")=0),True,False)
因为可见性表达式设置了隐藏值。
这没有用
=IIf((CountRows("ScannerStatisticsData") = 0),False,True)
但这确实如此,我无法解释为什么
=IIf((CountRows("ScannerStatisticsData") < 1),False,True)
猜测 SSRS 不喜欢相等的比较。
而不是这个
=IIf((CountRows("ScannerStatisticsData")=0),False,True)
当你想隐藏时只写表达式
CountRows("ScannerStatisticsData")=0
或更改真假位置的顺序如下
=IIf((CountRows("ScannerStatisticsData")=0),True,False)
因为可见性表达式设置了隐藏值。 您可以在文本区域上方找到
" Set expression for: Hidden "
文本框的可见性取决于隐藏值
根据下面的示例,如果内部条件满足,则文本框隐藏功能将为真,否则如果条件失败,则文本框隐藏功能将为假
=IIf((CountRows("ScannerStatisticsData") = 0), True, False)
Twood,可见性表达式是您编写的关于您希望“可见性”如何表现的表达式。 所以,如果你想隐藏或显示文本框,你想这样写:
=IIf((CountRows("ScannerStatisticsData")=0),True,False)
这意味着,如果数据集为 0,则您要隐藏文本框。
rdl文件内容:
<Visibility><Hidden>=Parameters!casetype.Value=300</Hidden></Visibility>
因此,如果您的表达式为真,文本框将隐藏。
切换你的虚假和真实回报? 我认为如果您将它们作为 function 放在可见区域中,那么 false 会显示它,而 true 不会显示它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.