Reporting Services - 有条件地隐藏矩阵列

时间:2009-08-15 12:56:36

标签: reporting-services matrix

在矩阵报告中,是否可以根据父组的值隐藏列? 例如,我有一个名为“value”的列,当包含它的列组具有特定值时,我想隐藏它。

5 个答案:

答案 0 :(得分:5)

是的,这是可能的。您单击该组并在“可见性”选项卡下编辑其属性,您可以使用表达式进行可见性。例如,我有一个包含详细信息组和值类型组的报表,我只想显示包含数据的值组。

我是通过将组的可见性表达式设置为以下内容来实现的:

= CountDistinct(Fields!ValueType.Value,“matrix1_Detail”)= 1 OR Max(Abs(code.GetValue(Fields!Value)))= 0

当表达式代码的计算结果为true时,该列将被隐藏。

答案 1 :(得分:1)

是的,这是可能的。它将涉及为数据单元格的Visibility属性编写表达式。表达式应包括InScope()函数,以确保隐藏右列。该表达式还将引用ReportItems!textboxofcolumn.value(查找您之后的特定值)。

转到here for more on the InScope() function

如果您需要表达方式,请告诉我。

答案 2 :(得分:1)

如果您只设置单元格或列可见性(使用“隐藏”属性),则会在那里留下空白区域。就像第一个回复说的那样,如果你创建一个列组,并在组上设置可见性,它就可以工作。

我将报告分成几个列组,每个列组都在同一个组中。在中间组上设置可见性方程。像冠军一样工作。

答案 3 :(得分:0)

我认为您需要从SQL中删除数据集中的行,或者在RS中过滤掉它们。

答案 4 :(得分:0)

我需要从导出的Excel工作表中排除空白列。对我有用的是通过右键单击设计器中的顶部框,选择“基于表达式显示或隐藏”并使用如下表达式选择矩阵中的整个列:

IsNothing(Max(Fields!COLUMNNAME.Value,“DATASET”))

该列未显示在报告中,也不会在导出中留下空白。不需要列组或InScope()函数,但我使用的是一个只有一个行组的非常基本的矩阵。