基于参数隐藏SSRS中的子报告(并且不执行存储过程)

Adr*_*der 3 stored-procedures subreport hide reporting-services

我有一个问题,我希望根据传递给主报表的参数隐藏/显示子报表.

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

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

小智 7

SSRS中的隐藏报表元素仍在处理中 - 隐藏属性只是确定它们是否显示在输出中.

确保仅有条件地执行过程的一种方法是将数据集中存储过程的名称更改为表达式 - 如下所示:

=iif(Parameters!RunMyDataset.Value="Y","sp_MyDataSet","sp_Dummy")
Run Code Online (Sandbox Code Playgroud)

- 其中sp_Dummy是执行最少处理的存储过程(例如SELECT NULL).