【问题标题】:Hide Column if all Rows are empty如果所有行都为空,则隐藏列
【发布时间】:2012-05-11 18:07:58
【问题描述】:

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

所以这会隐藏第 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 中做到这一点?

谢谢!

【问题讨论】:

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


    【解决方案1】:

    非常老的帖子,但我在使用 SSAS 多维数据集时找到了更好的解决方案。由于所有聚合都已在 SSAS 中进行,因此您可以简单地检查层次结构的父级别是否具有值。

    这是相应地完成的:

    =IsNothing(Fields!Field.Value)
    

    SSRS 不需要求和或 if 语句。因为函数的计算结果为truefalse,并且因为表达式正在评估是否隐藏 列(即True 隐藏它)这就是你的全部需要在公式中。

    【讨论】:

    • 这是一个很棒的答案。非常感谢。
    【解决方案2】:

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

    将此代码作为表达式放在要评估的每一列的列可见性对象中

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

    【讨论】:

    • 像魅力一样工作!谢谢!
    【解决方案3】:

    在设计中,

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

    根据表达式选择showhide,并给出表达式为:

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

    【讨论】:

    【解决方案4】:

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

    这可能会有所帮助

    Reporting Services - hide table column based upon report parameter

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        【解决方案6】:

        您可以根据表达式探索 tablix 的列可见性属性: 如果它什么都没有,则将条件评估为无。

        点击链接:

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

        【讨论】:

          猜你喜欢
          • 2014-06-30
          • 1970-01-01
          • 1970-01-01
          • 2012-02-17
          • 2017-03-03
          • 2015-03-08
          • 1970-01-01
          • 2022-01-16
          • 1970-01-01
          相关资源
          最近更新 更多