如果隐藏,子报表内的查询仍会执行

Do Queries inside a Sub Report still execute if it is Hidden

我有一种情况,我想在 tablix 中动态地 show/hide 子报表。理想情况下,隐藏子报表中的内容不会执行以节省资源。有人知道这是怎么回事吗?

谢谢

据我所知,查询仍然 运行。当您 运行 报告并捕获执行的查询时,您可以通过 运行ning SQL Server Profiler 仔细检查。

早在 SQL 2008 年,查询肯定会 运行。我们有一种情况,我们只希望子报表根据传递给报表的参数显示,所以我们所做的是将参数传递给子报表并使用这些参数来确定查询是否应该 运行.

如果查询不需要 运行 我们会 return 一个空数据集但是,由于 SSRS 坚持始终具有相同的结构 returned 查询最终看起来像这...

DECLARE @results TABLE(EmplID int, EmpName varchar(50))
IF @hidden = 0 -- sub report needs to show
    BEGIN
        INSERT INTO @results
        SELECT EmpID, EmpName FROM myTable
    END
SELECT * FROM @results

因此,尽管查询 运行s,但如果不需要数据,所发生的只是创建了一个 table 变量,它的速度如此之快,您不会注意到。