繁体   English   中英

如何使用表达式在 SSRS 中设置文本框的可见性?

[英]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

  1. 在此示例中,报表有一个名为Items的数据集,并有一个显示行数的文本框。 它还有另一个文本框,仅当数据集 Items 有行时才可见。

  2. 右键单击应该基于表达式可见/隐藏的文本框和 select Text Box Properties... 请参阅屏幕截图# 1

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

  4. Select Show or hide based on an epxression

  5. 单击表达式按钮fx

  6. 输入表达式=IIf(CountRows("Items") = 0, True, False) 请注意,此表达式是隐藏文本框(隐藏)。

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

  8. 屏幕截图# 3显示了 SQL 服务器表dbo.Items中的数据,它是报告数据集Items的源。 该表包含3 行 屏幕截图 # 4显示了针对数据执行的示例报告。

  9. 屏幕截图 # 5显示 SQL 服务器表dbo.Items中的数据,它是报告数据集Items的源。 该表不包含任何数据 屏幕截图 # 6显示了针对数据执行的示例报告。

希望有帮助。

截图#1:

1

截图#2:

2

截图#3:

3

截图#4:

4

截图#5:

5

截图#6:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM