首页 > 解决方案 > 基于文本框或列的可见性的 SSRS 表达式

问题描述

是否可以检查 SSRS 中文本框的可见性(折叠/展开)并在表达式中使用它?

例如 :

=iif(Fields!column1 Is Visible,"Use this label","Use this other label")

我想要完成的是让列标题的初始值显示一些文本,当用户单击特定值时显示详细信息行(这是 Tablix),然后标题将更改为其他内容(例如初始报告状态是隐藏详细信息行并仅显示 Tablix 成员总计,因此当用户展开以查看详细信息列标题更改为“...数字”时,列显示“...总计”。

在通过 VBA 的 MS Access 中,我可以检查可见属性并基于此创建代码。到目前为止,还没有在 SSRS 2016 中找到类似的方法。

尝试设置可见性表达式以及设置表达式以更改文本框的值。

=IIF(Fields!accountnum.Value IS NOTHING OR Fields!accountnum.Value = TRUE,"Station #", "Station Count")

没有错误信息。我的结果应该是根据详细信息行是折叠(隐藏)还是展开(可见)来更改标题(文本框)值。

标签: reporting-services

解决方案


要回答您的第一个问题:

当然这是可能的,只是不是他们想要的方式。这是一个简单的例子。假设您的可见性标准是以下表达式:

'Visibility expression
=IIF(Fields!Category.Value = "Visible", False, True)

现在您不用Is Visible标准检查可见性,您只需再次使用相同的表达式。像这样:

=IIF(
     IIF(Fields!Category.Value = "Visible", 
         Fale, 
         True) = True, 
 "This one is not visible", 
 "This one is visible")

回答你的问题:

他们按照你想要的方式去做,这是不可能的。但是您可以通过解决方法来做到这一点。使用两个选项将用户定义的参数添加到您的报告中:

  • 显示详情
  • 隐藏细节

然后将两个 tablix 添加到您的报告中。一个没有详细信息的 tablix 和一个包含您要显示的详细信息的 tablix。然后转到第一个 tablix Tablix Properties > Visibility并添加以下表达式:

=IIF(Parameters!VisibilityParameter.Value = "Display details", True, False)

以及其他 tablix 可见性的表达式:

=IIF(Parameters!VisibilityParameter.Value = "Hide details", True, False)  

现在将根据参数结果显示带有或不带有详细信息的 talbix。


推荐阅读