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

时间:2012-05-11 18:07:59

标签: sql-server-2008 ssrs-2008 reporting-services

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

所以这会隐藏第2列:

Column 1     Column 2     Column 3     Column 4
1                            3            4
2                            3            4

这不会隐藏第2列:

Column 1     Column 2     Column 3     Column 4
1                            3            4
2               2            3            4

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

谢谢!

6 个答案:

答案 0 :(得分:8)

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

这是相应的:

=IsNothing(Fields!Field.Value)

SSRS无需汇总或必要声明。因为函数的计算结果为truefalse,并且因为表达式正在评估是否隐藏列(即 True 隐藏它)这就是公式中你所需要的一切。

答案 1 :(得分:5)

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

将此代码作为表达式添加到要评估的每列的“列可见性”对象中

=IIF(Count(Fields!<NAMEofCOLUMN>.Value) = Cint(0), True, False)

答案 2 :(得分:1)

我怀疑你必须要有创造力。例如,运行查询以获取列的非空行数。然后将计数结果用作列的visibility属性上的表达式的一部分。即如果数大于零......显示。

这可能会有所帮助

Reporting Services - hide table column based upon report parameter

答案 3 :(得分:1)

选择Tablix中的所有列,并将可见性 - 隐藏属性设置为:

=IIF(Fields!ColumnSample.Value = Nothing, True, False)

答案 4 :(得分:1)

在设计中,

转到该列,右键单击并选择“列可见性”

根据表达式选择showhide,并将表达式设为:

=iif(Fields!column_name.Value=Nothing,True,False)

答案 5 :(得分:0)

您可以根据表达式探索Tablix的列可见性属性: 如果没什么,那么就将条件评估为Nothing。

点击链接:

SSRS 2008 Column Visibility Expression Evaluates to true, column not visible