【问题标题】:Hide multiple rows or columns in SSRS report with same Expression at same time同时隐藏具有相同表达式的 SSRS 报告中的多行或多列
【发布时间】:2016-11-21 10:16:47
【问题描述】:

我有一个包含 Tablix/表的报告,其中包含我通过“列/行可见性”对话框有条件地使用表达式隐藏的行和列集。

例如,如果我有 3 个列,我希望它们都具有相同的表达式来确定它们的可见性,我有什么方法可以在不打开每个列的“列可见性”对话框并输入适当的表达式的情况下实现这一点?

我尝试选择多个列,但是右键单击上下文菜单不再提供列可见性选项(它是灰色的),我还尝试了列的隐藏属性(可以批量修改通过选择多个列),但这只会停止渲染列,在它们曾经所在的位置留下一个空白区域(而不是列可见性的工作方式,其中隐藏列右侧的列被移动以填充间隙,就像在 Excel 工作表中隐藏列一样)。

是否有可能实现我所追求的,还是我必须继续为我希望有条件地隐藏/显示的每一列/行打开“列/行可见性”对话框?

【问题讨论】:

    标签: reporting-services visibility ssrs-2012 ssrs-tablix


    【解决方案1】:

    如果您要控制其可见性的列彼此相邻,您可以为它们创建一个列组,并通过该组管理可见性。

    • 在适当的级别添加一个新的列组,以便只包含相关的列。
      • 如果您已经有列组,这可能是子组或相邻组。
      • 如果没有,您可以通过将“数据集”字段从“报告数据”拖到“组”窗格中来创建初始列组。
    • 在新组中插入新列,并将现有相关列中的数据移动到组中。
    • 新组不需要重复,因此在其属性窗口中将Group on: 设置为纯文本值,例如“1”。
    • 在属性窗口的可见性页面中输入所需的可见性设置。
    • 对于组内的每一列,将 Hidden 属性设置为 False,以删除任何其他可能干扰的表达式或设置。

    【讨论】:

    • 有趣,有机会我会尝试一下,看看它是否适合我。感谢您的回答。
    • 这很好用,谢谢。我做的唯一额外的事情是删除由于添加列组而添加的额外行。
    【解决方案2】:

    不完全是您正在寻找的东西,但可能是一个中间点 - 这可以应用于除可见性之外的许多东西(例如背景颜色、工具提示) - 直接使用查看代码编辑 RDL。这具有额外的好处,即能够实现每列几乎相同的更改,而不是用最少的鼠标使用相同的更改。

    通常我会在设计器中按照我喜欢的方式设置一列,然后在其他列下复制/粘贴。在可见性的情况下寻找<TablixColumnHierarchy><TablixMemebers>。您将看到一个空的<TablixMember /> 项目列表以及您已设置一列的扩展<TablixMember><Visibility><Hidden>=... 块。只需将该块复制粘贴到感兴趣位置的空项目上(不幸的是,您需要将其计算在内,因为没有标识符)。

    额外提示:如果您犯了错误或想稍后更改某些内容,您可以一次对所有表达式进行替换(允许使用可选的正则表达式)。

    记得先备份或签入你的工作,因为如果你犯了错误,设计师可能无法再次正确打开该报告:-)

    【讨论】:

      【解决方案3】:

      选择您想要有条件地隐藏的列,然后按F4 以查看“属性”窗口。查找 Visibility 节点并使用Hidden 属性设置条件表达式。

      表达式应该计算为 True 用于隐藏和False 用于显示。

      如果这有帮助,请告诉我。

      【讨论】:

      • 很遗憾没有。根据我的问题中的详细信息,使用列的 Visibility -> Hidden 属性只是将它们从视图中隐藏起来,而不是像在单个列上使用 Column Visibility 选项隐藏时那样随机排列相邻的列。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多