引用 SSRS 中的报表项属性



在 SSRS 报表表达式中,有没有办法引用报表项的"隐藏"属性?

更具体地说:我的 SSRS 报表包含一个摘要,以及一个包含详细信息的子报表。 如果子报表被隐藏,我希望能够停止子报表的运行,就像这个问题一样。 该问题的答案建议根据参数更改查询,但我的问题是如何设置该参数。 实际上,我只需要参数为 1 或 0;如果查询为 0,则不会返回任何内容,这已经足够好了。

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

=iif(报告项目!子报表1.隐藏=假, 1, 0)

。或者这个:

=iif(ReportItems("SubReport1").隐藏=0, 1, 0)

。但"隐藏"属性也没有出现。

我探索过的其他选项:

  1. 放入一个不可见的文本框,并根据此 MSDN 文章在参数表达式中使用其值。 然后,问题就变成了如何设置文本框的值。
  2. 使用变量;同样的问题适用(实际上我什至不确定如何在SSRS中使用变量,或者即使可以)。
  3. 将子报表保留为单独的报表并链接到它;有点不优雅,意味着当用户想要查看详细信息时会丢失其他报表内容。
  4. 广泛的谷歌搜索;返回很多设置"隐藏"属性的方法,但没有办法引用它。

建议、道义支持、建设性批评和赤裸裸的谩骂都感激不尽。

正如这里的答案所说,您无法阻止隐藏项目运行。 如果不希望子报表在呈现主报表时运行,则需要使用此变量运行主报表,该变量首先会阻止其运行。

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

可见性 ->"基于表达式显示或隐藏" -> f(x)

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

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

我希望这对你有所帮助。

上面链接的问题显示了如何使用报表参数来控制子报表的可见性和执行。但这与使用报表项(如文本框)执行此操作不同。

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

恐怕按需执行详细报告的唯一选择是使用"钻取"设计。这意味着报表上的文本框用作指向详细信息报表的链接,而不是用作子报表的详细信息报表。

SSRS 2008 R2 按需向下钻取到子报表

最新更新