在SSRS报告中同时隐藏多个行或列,使用相同的表达式

时间:2016-11-21 10:16:48

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

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

例如,如果我有3列我希望所有列都具有相同的表达式以确定它们的可见性,那么有没有办法让我实现这一点而无需打开每列的列可见性对话框并输入相应的表达式?

我尝试选择多个列,但是右键单击上下文菜单不再提供“列可见性”选项(它显示为灰色),我还尝试了列的隐藏属性(可以通过选择多个列来批量修改,但这只会停止渲染列,留下以前的空白区域(而不是列可见性如何工作,隐藏列右侧的列被移动)填补空白,就像在Excel工作表中隐藏列一样。)

是否有可能实现我之后的目标,或者我是否必须继续打开我希望有条件地隐藏/显示的每个列/行的列/行可见性对话框?

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

通常我在设计器中按照我喜欢的方式设置了一列,然后在其他列下复制/粘贴。在可见性的情况下查找[JsonProperty("")]。您将看到一个空的<TablixColumnHierarchy><TablixMemebers>项列表以及已设置一列的展开的<TablixMember />块。只需复制粘贴在感兴趣位置的空白项目上的粘贴(不幸的是,由于没有标识符,您需要将其计算出来)。

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

请记住首先备份或检查您的工作,因为如果您犯了错误,设计人员可能无法再次正确打开该报告: - )

答案 2 :(得分:-1)

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

表达式应评估为True隐藏,False表示。

enter image description here

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