我看到一些我无法弄清楚的奇怪行为。我有一个包含一堆参数的报告,它们都不是级联的。少数参数设置为允许多选,并且可用/默认值从使用存储过程的数据集中检索。
当我加载报告时,每个数据集都会执行,这是我所期望的。但是,如果我更改参数值,例如 date 参数的日期,每个数据集都会再次执行。为什么是这样?
使情况更加复杂的是我有每个参数的 2 个副本(Param1、Param1_Internal、Param2、Param2_Internal 等)。我已经为我在报告中使用的公式设置了这样的设置,以确定用户是否为多选参数选择了“全选”。例如,我将从数据集 1 中设置 Param1 和 Param1_Internal,从数据集 2 中设置 Param2 和 Param2_Internal。当我更改不相关的参数时,数据集 1 将执行两次,然后数据集 2 将执行两次。
任何建议:
- 让这些数据集每个运行一次,即使一个数据集提供了 2 个参数的可用值?
- 每次更改无关参数时都停止运行数据集?
我目前使用的是 SQL Server 2016。
谢谢
编辑
所以,我找到了部分问题的答案。在某些情况下,我使用表达式作为调用我的存储过程的数据集中的参数值。看起来当您这样做时,SSRS 将在您每次更改任何参数值时执行该数据集。我仍然希望有人会就如何在我有 2 个参数将其用作默认/可用值的情况下运行一次数据集提出建议。