我在该报告下有一份主要报告和30份子报告。每次调用主报表时我都不希望看到所有的子报表,我只想看到在应用程序中选择的子报表。
如何仅显示选定的子报告?
答案 0 :(得分:0)
如果您只关心子报告的显示,comment from Martin K.是正确的。您可以通过表达式设置visibility属性,这意味着它也可以由结果集或参数控制。
然而,真正的问题是,即使隐藏子报告,它们仍然会运行。这是因为SSRS在完成呈现之前检索报告的所有数据。 this TechNet posting中讨论了许多好的选项。但基本上归结为两种选择:
您可以在子报表上设置隐藏参数并修改WHERE子句,以便在参数未设置为true时SQL实际上不会返回任何行。这不会停止报表呈现操作,但会阻止SQL命令对服务器产生很大影响。
只需在名为@ShowSubreport
的子报告上设置参数,并使用类似于以下内容的过滤
WHERE @ShowSubReport=1
我实际上并没有使用它们,但它听起来很方便,但它并不简单或容易。报表定义自定义扩展允许您以编程方式动态更改报表定义文件。它将RDL作为输入并输出更改的RDL流。您可以在MSDN文章中详细了解它:What's New in Report Server Programmability