【问题标题】:SSRS Visibility expression to hide certain Tablix, after parameter selectionSSRS 可见性表达式隐藏某些 Tablix,在参数选择后
【发布时间】:2018-04-05 10:28:50
【问题描述】:

大家好,我有一个 ssrs 报告,其中包含 6 个 tablix,所有 6 个都使用相同的 dataset1,但 tablix 过滤了 6 个唯一的服务提供商,每个 tablix 一个。

用户从参数中选择一个国家。并且基于用户选择的国家:在 6 个服务提供商中,其中一些可能在该国家/地区不可用,并且将显示一个只有列标题的空白 tablix 表。

我想要什么:有没有办法更改可见性设置,以便无论哪个服务提供商 tablix 为空,它们都会变得不可见?

例如:用户选择加拿大:

Provider1:在加拿大可用,显示 Tablix

Provider2:在加拿大可用,显示 Tablix

Provider3:在加拿大不可用导致空白 tablix - 将可见性转为隐藏

Provider4:在加拿大不可用导致空白 tablix - 将可见性转为隐藏

Provider5:在加拿大可用,显示 Tablix

Provider6:在加拿大不可用导致空白 tablix - 将可见性转为隐藏

因此只有提供者 1、2 和 5 的 Tablix 会显示在报告中。

我假设这将使用 IIF 表达式?我只需要一些指导,了解什么是完成此任务的最佳方式。

谢谢

【问题讨论】:

    标签: reporting-services expression visibility


    【解决方案1】:

    Tablix 的 NoRowsMessage 属性可能对您的需要有用。如果过滤器导致 tablix 没有可使用的数据,这将显示一条消息,而不是显示列/行标题。这可以是静态的或表达式:

    ="No Provider3 data available for " & Parameters!Country.Value
    

    tablix 的Font 属性(而不是其单元格的属性)控制无行消息的显示方式。

    【讨论】:

      【解决方案2】:

      您可以使用类似的表达式来设置Tablix 的Hidden 属性:

      =IIf(CountRows("YourTablixName") = 0, True, False)
      

      【讨论】:

      • 也可以引用表达式中的参数,语法为Parameters!Country.Value。
      • 好的,但在这种情况下,我认为使用参数不是一个好的解决方案。您已经有一个包含数据或不包含数据的数据集:如果数据集为空,则不显示 tablix。
      • 非常感谢!甚至不知道这个表情的存在。我有一个与每个 tablix 关联的文本框,用于显示 tablix 所代表的服务提供商。有没有办法应用相同的可见性设置?我尝试使用您发布的相同表达式,但它抛出了一个错误,指出“'Textbox83' 的范围参数对聚合函数无效。范围参数必须设置为一个字符串常量,该常量等于包含组、包含数据区域的名称或数据集的名称。”
      • 正确,只有一个数据集。我将文本框表达式从“tablix”更改为“dataset”,但仍然抛出相同的分数参数错误。
      • @tezzo 这是一项出色的工作。再次感谢您的帮助!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      • 2017-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多