如果所有行都为空,则隐藏列

13 sql-server-2008 reporting-services ssrs-2008

我在SSRS 2008中有一个Tablix,我有一个有时有数据的列,有时却没有.如果没有行数据,我想隐藏列.

所以这会隐藏第2列:

Column 1     Column 2     Column 3     Column 4
1                            3            4
2                            3            4
Run Code Online (Sandbox Code Playgroud)

这不会隐藏第2列:

Column 1     Column 2     Column 3     Column 4
1                            3            4
2               2            3            4
Run Code Online (Sandbox Code Playgroud)

在SSRS 2008中有没有办法做到这一点?

谢谢!

Mik*_*ana 9

很老的帖子,但是当我使用SSAS多维数据集时,我想出了一个更好的解决方案.由于所有聚合都已在SSAS中发生,因此您只需检查层次结构的父级别是否具有值.

这是相应的:

=IsNothing(Fields!Field.Value)
Run Code Online (Sandbox Code Playgroud)

SSRS无需汇总或必要的声明.因为函数求值为true或者false,因为表达式正在评估是否隐藏列(即True隐藏它),这是公式中所需的全部内容.


小智 6

如果您的字段包含值而不是数字,则以下内容应该可以隐藏列中每行只有NULL值的列.

将此代码作为表达式放在要评估的每列的Column Visbility对象中

=IIF(Count(Fields!<NAMEofCOLUMN>.Value) = Cint(0), True, False)
Run Code Online (Sandbox Code Playgroud)


Chr*_*ray 1

我怀疑你必须发挥创造力。例如,运行查询来获取该列的非空行计数。然后使用计数结果作为列可见性属性表达式的一部分。即如果计数大于零...显示。

这可能有帮助

Reporting Services - 根据报表参数隐藏表列