引用 SSRS 中的 ReportItem 属性

Referring to ReportItem properties in SSRS

在 SSRS 报告表达式中,是否有任何方法可以引用 ReportItem 的 "Hidden" 属性?

更具体地说:我的 SSRS 报告由一个摘要和一个包含详细信息的子报告组成。我希望能够停止子报表 运行 如果它是隐藏的,如 this 问题。该问题的答案建议根据参数更改查询,但我的问题是如何设置该参数。其实我只需要参数为1或0即可;如果查询为 0,则查询将 return 什么都没有,这就足够了。

我希望能够使用文本框作为 ToggleItem 来显示或隐藏子报表,并将表达式作为参数值,如下所示:

=iif(ReportItems!SubReport1.Hidden=False, 1, 0)

...或者这个:

=iif(ReportItems("SubReport1").Hidden=0, 1, 0)

...但是 "Hidden" 属性 都没有出现。

我探索过的其他选项:

  1. 放入一个不可见的文本框,并按照this MSDN article在参数表达式中使用它的值。那么问题就变成了如何设置文本框的值。
  2. 使用变量;同样的问题也适用(实际上我什至不确定你如何在 SSRS 中使用变量,或者即使你可以)。
  3. 将子报表作为单独的报表保存,并链接到它;有点不雅观,意味着当用户想要查看详细信息时会丢失其他报表内容。
  4. 大量谷歌搜索; return设置"hidden"属性的方法有很多,但是没有办法引用。

建议、道义上的支持、建设性的批评和赤裸裸的辱骂,我们都感激不尽。

您在上面链接的问题显示了如何使用报表参数来控制子报表的可见性和执行。但这不同于使用文本框等报告项来完成。

听起来您真正想要的是按需执行子报表,这恐怕是不可能的。报告呈现仅在报告首次显示时发生一次,除非您更改参数并再次 运行。

恐怕您按需执行详细报告的唯一选择是使用 "drill-through" 设计。这意味着报表上的文本框用作详细报表的链接,而不是将详细报表用作子报表。

SSRS 2008 R2 Drill Down On-Demand to Sub Report

如回答 here 所述,您无法阻止 运行ning 的隐藏物品。如果在呈现主报表时不希望子报表 运行,则需要使用此变量 运行 主报表,以防止它在第一个 运行ning地方。

为此,使用参数而不是文本框切换来简单地隐藏或显示此子报表是有意义的。您可以使用以下方法在子报表上为此引用参数值:

可见性 -> 'Show or Hide Based on an Expression' -> f(x)

IIF(Parameters!ToggleSub.Value = 1, true, false)

问题是,如果此时您包含一个文本框来切换可见性,那么唯一的方法就是传回一个参数并刷新报告。选择不呈现子报表后,只有在刷新整个报表时才会呈现。

希望对您有所帮助。