在SSRS报告表达式中,有没有办法引用ReportItem的“隐藏”属性?
更具体地说:我的SSRS报告包含一个摘要,其子报告包含详细信息。如果它隐藏了,我希望能够停止子报表的运行,就像在this问题中一样。该问题的答案建议根据参数更改查询,但我的问题是如何设置该参数。实际上,我只需要参数为1或0;
,只要它为0,查询就不会返回任何内容我希望能够使用文本框作为ToggleItem显示或隐藏子报表,并将表达式作为参数值,如下所示:
= iif(ReportItems!SubReport1.Hidden = False,1,0)
......或者这个:
= iif(ReportItems(“SubReport1”)。隐藏= 0,1,0)
...但是“Hidden”属性也没有出现。
我探索过的其他选择:
建议,道德支持,建设性批评和赤裸裸的虐待都非常感激。
答案 0 :(得分:0)
您在上面链接的问题显示了如何使用报表参数来控制子报表的可见性和执行。但这与使用文本框等报表项不同。
听起来你正在寻找的是按需执行子报告,我担心这是不可能的。报告首次显示时,报告呈现仅发生一次,除非您更改参数并再次运行它。
我担心按需执行详细报告的唯一选择是使用“钻取”设计。这意味着报表上的文本框用作详细报表的链接,而不是用作子报表的详细报表。
答案 1 :(得分:0)
正如答案here所述,您无法阻止隐藏项目的运行。如果您不希望在呈现主报表时运行子报表,则需要使用此变量运行主报表,以防止它首先运行。
为此,通过使用参数而不是文本框切换来简单隐藏或显示此子报表是有意义的。您可以使用以下命令在子报表上引用此参数的值:
可见性 - > “基于表达式显示或隐藏” - > F(X)
IIF(Parameters!ToggleSub.Value = 1, true, false)
问题是,如果你包含一个文本框来切换此时的可见性,那么唯一的方法就是传回一个参数并刷新报告。一旦选择不渲染子报表,它将仅在刷新整个报表时呈现。
我希望这可以帮助你。