代码之家  ›  专栏  ›  技术社区  ›  Jon Dewees

Reporting Services-按条件隐藏矩阵列

  •  4
  • Jon Dewees  · 技术社区  · 15 年前

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

    5 回复  |  直到 11 年前
        1
  •  5
  •   zzawaideh    15 年前

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

    为此,我将组的可见性表达式设置为以下值:

    =countDistinct(字段!valuetype.value,“matrix1_detail”)=1或max(abs(code.getvalue(fields!值))=0

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

        2
  •  1
  •   lukehayler    15 年前

    是的,这是可能的。它将涉及为数据单元的可见性属性编写表达式。表达式应包含inscope()函数,以确保隐藏右列。表达式还将引用reportitems!textboxofcolumn.value(正在查找您需要的特定值)。

    here for more on the InScope() function

    如果你需要帮忙表达的话,请告诉我。

        3
  •  1
  •   anonymous    13 年前

    如果只设置单元格或列的可见性(使用“hidden”属性),它将在其中留下空白。正如第一个回复所说,如果您创建了一个列组,并在该组上设置了可见性,那么它就工作了。

    我把我的报告分成几个列组,每个列组按相同的内容分组。在中间组上设置可见性公式。像冠军一样工作。

        4
  •  0
  •   adolf garlic    15 年前

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

        5
  •  0
  •   Ken Mc    11 年前

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

    没有(最大值(字段!columnname.value,“数据集”))

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