Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 在SSRS中隐藏子报表(不执行存储过程)_Reporting Services_Ssrs 2008_Ssrs Tablix_Ssrs Grouping - Fatal编程技术网

Reporting services 在SSRS中隐藏子报表(不执行存储过程)

Reporting services 在SSRS中隐藏子报表(不执行存储过程),reporting-services,ssrs-2008,ssrs-tablix,ssrs-grouping,Reporting Services,Ssrs 2008,Ssrs Tablix,Ssrs Grouping,我可以使用一个将隐藏/显示子报表的表达式来设置hidden属性,但我使用SQL Profiler发现,即使子报表是隐藏的,子报表存储过程仍然会执行 除了更改存储过程本身,是否有人知道避免这种情况的方法。如果没有,即使子报表是隐藏的,是否有人知道执行存储过程的原因 这是与相同的问题,但没有答案,因此我再次请求您提供任何帮助将非常好只要在SQL Management Studio中执行该逻辑即可。SSRS并不是一个真正的事件驱动系统,您可以在代码块中使用Visual Basic做一些小事情,但不多。

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

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


这是与相同的问题,但没有答案,因此我再次请求您提供任何帮助将非常好

只要在SQL Management Studio中执行该逻辑即可。SSRS并不是一个真正的事件驱动系统,您可以在代码块中使用Visual Basic做一些小事情,但不多。这并不意味着要在复杂的if-then-else场景上编程执行计划级别的编码,以便在运行时执行计划。事实上,如果您尝试执行高级循环和索引,那么它会变得很疯狂,因为这对于服务器来说比这个附加组件更重要。它是为了展示你给它的数据和一些非常基本的元素条件。如果您确实希望执行查询并降低查询成本,或者不只是在SQL Management Studio中创建的过程中添加一点翻转,如:

create procedure dbo.ToCreateOrNotToCreate 
    (
        @input varchar(32)
    ,   @Run bit
    )
as 

BEGIN
    if @Run = 1 
        Select 'You selected to run "' + @input + '" at a cost!'
    else 
        Select 'Don''t run and save performance'
END


exec dbo.ToCreateOrNotToCreate @input = 'My Input', @Run = 1
exec dbo.ToCreateOrNotToCreate @input = 'My Input', @Run = 0

我有一个大型复杂的报告(最多10k控制行),其中7个子报告中有1:n行。除非您能够抑制子报表中的SQL执行(因为大多数子报表在大多数情况下都是隐藏的),否则它会像狗一样运行

在经历了很多痛苦之后,我发现抑制子报表呈现和数据集执行非常容易。您所需要的只是子报表中所需的报表参数。通常会有一个ID字段传递给子报表,所以这应该没有问题

在主报告中,参数由类似于以下内容的表达式传递:

=Iif(字段!子报表xisHidden.Value,无,字段!ID.Value)

子报表将显示缺少的参数,不会呈现,也不会执行SQL

深深的喜悦

请看我的答案