我有一个计算列的小计字段,我希望在我的报告尚未运行时隐藏该字段,因为在报告中显示为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)
我做错了什么?
答案 0 :(得分:62)
我尝试了您提供的示例,唯一的区别是您在@bdparrish
指出时切换了True和False值。下面是根据数据集中存在的行数使SSRS Texbox可见或隐藏的工作示例。此示例使用 SSRS 2008 R2
。
分步流程: SSRS 2008 R2
在此示例中,报告具有名为Items
的数据集,并具有显示行计数的文本框。它还有另一个文本框,只有在数据集Items有行时才可见。
右键单击应根据表达式显示/隐藏的文本框,然后选择Text Box Properties...
。请参阅屏幕截图# 1 。
在Text Box Properties
对话框中,点击左侧部分的Visibility
。请参阅屏幕截图# 2 。
选择Show or hide based on an epxression
。
点击表达式按钮fx
。
输入表达式 =IIf(CountRows("Items") = 0 , True, False)
。请注意,此表达式是隐藏文本框(隐藏)。
单击“确定”两次以关闭对话框。
屏幕截图# 3 显示SQL Server表dbo.Items
中的数据,该表是报告数据集Items
的来源。该表包含 3行。屏幕截图# 4 显示针对数据的示例报告执行。
屏幕截图# 5 显示SQL Server表dbo.Items
中的数据,该表是报告数据集Items
的来源。该表包含无数据。屏幕截图# 6 显示针对数据的示例报告执行。
希望有所帮助。
屏幕截图#1:
屏幕截图#2:
屏幕截图#3:
屏幕截图#4:
屏幕截图#5:
屏幕截图#6:
答案 1 :(得分:14)
=IIf((CountRows("ScannerStatisticsData")=0),False,True)
应替换为
=IIf((CountRows("ScannerStatisticsData")=0),True,False)
因为可见性表达式设置了隐藏值。
答案 2 :(得分:13)
这不起作用
=IIf((CountRows("ScannerStatisticsData") = 0),False,True)
但这样做了,我无法解释原因
=IIf((CountRows("ScannerStatisticsData") < 1),False,True)
猜测SSRS不喜欢平等比较,也不喜欢低于。
答案 3 :(得分:6)
而不是
=IIf((CountRows("ScannerStatisticsData")=0),False,True)
当你想隐藏时只写表达式
CountRows("ScannerStatisticsData")=0
或更改真假位置的顺序如下
=IIf((CountRows("ScannerStatisticsData")=0),True,False)
因为Visibility表达式设置了Hidden值。您可以在文本区域上方找到
" Set expression for: Hidden "
答案 4 :(得分:0)
转换您的虚假和真实回报?我想如果你把它们作为一个函数放在可见区域,那么false会显示它,而true则不会显示它。
答案 5 :(得分:0)
文本框的可见性取决于隐藏值
根据以下示例,如果内部条件满足,则文本框隐藏功能将为True否则如果条件失败则文本框隐藏功能将为False
=IIf((CountRows("ScannerStatisticsData") = 0), True, False)
答案 6 :(得分:0)
rdl文件内容:
<Visibility><Hidden>=Parameters!casetype.Value=300</Hidden></Visibility>
如果您的表达式为true,则文本框将被隐藏。