在SSRS中隐藏子报告(而不是执行存储过程)

2 reporting-services ssrs-2008 ssrs-grouping ssrs-tablix

我可以使用隐藏/显示子报表的表达式来设置隐藏属性,但是我使用SQL Profiler发现的是,即使子报表被隐藏,子报表存储过程仍然会被执行.

除了更改存储过程本身之外,是否有人知道避免这种情况的方法.如果没有,是否有人知道存储过程执行的原因,即使隐藏了子报告?

这个问题和这个问题一样,但没有答案,所以我再次要求任何帮助都会很棒

小智 6

我有一个大型的复杂报告(最多10k控制行),其中7个子报告中有1:n行.除非您可以抑制子报表中的SQL执行,因此它会像狗一样运行(因为大多数时候大多数子报表都被隐藏).

经过多次努力之后,我发现抑制子报表渲染和数据集执行非常容易.您所需要的只是子报表中的必需报表参数.通常会有一个ID字段传递给子报表,所以这应该没问题.

在主报表中,参数通过类似于的表达式传递:

= IIF(领域!SubReportXisHidden.Value,没什么,场!ID.Value)

子报表将对缺少的参数进行barf,不会呈现并且不会执行SQL.

深深的喜悦!