如何使用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

  1. 在这个例子中,报告有一个名为Items的数据集,并有文本框来显示行数。 它还有另一个文本框,只有在数据集Items有行时才可见。

  2. 右键单击基于expression式应该可见/隐藏的文本框,然后select“ Text Box Properties... 。 请参阅截图# 1

  3. 在“ Text Box Properties对话框中,单击左侧部分的“ Visibility ”。 请参阅截图# 2

  4. Show or hide based on an epxressionselectShow or hide based on an epxression

  5. 点击expression式buttonfx

  6. inputexpression式=IIf(CountRows("Items") = 0 , True, False) 。 请注意,这个expression式是隐藏文本框( 隐藏 )。

  7. 单击确定两次closures对话框。

  8. 屏幕截图# 3显示了SQL Server表dbo.Items ,这是报表数据集Items的来源。 该表包含3行 。 屏幕截图# 4显示了针对数据的示例报告执行情况。

  9. 屏幕截图# 5显示了SQL Server表dbo.Items ,这是报表数据集Items的来源。 该表不包含数据 。 屏幕截图# 6显示了针对数据的示例报告执行情况。

希望有所帮助。

屏幕截图#1:

1

屏幕截图#2:

2

屏幕截图3:

3

屏幕截图#4:

4

屏幕截图5:

五

屏幕截图#6:

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,则要隐藏文本框。