Sql server 如果日期验证失败,则停止RS执行数据集

Sql server 如果日期验证失败,则停止RS执行数据集,sql-server,reporting-services,Sql Server,Reporting Services,我有以下代码,用于检查报告中选择的日期范围 Function ValidateDateRange(StartDate as DateTime , EndDate as DateTime) as Boolean Dim RetValue As Boolean RetValue = "False" if(DateDiff("m",StartDate,EndDate)>3) Then RetValue = "False" Else RetValue = "True" End if

我有以下代码,用于检查报告中选择的日期范围

Function ValidateDateRange(StartDate as DateTime , EndDate as DateTime) as Boolean
Dim RetValue As Boolean
RetValue = "False"
if(DateDiff("m",StartDate,EndDate)>3) Then
    RetValue = "False"
Else
    RetValue = "True"
End if
Return RetValue
End Function`
我创建了一个名为ValidateDate的隐藏参数,并将此代码作为表达式指定给默认值

=Code.ValidateDateRange(Parameters!DateFrom.Value, Parameters!DateTo.Value)
我有一个显示消息的文本框

所选日期范围必须小于3个月

并且可见性属性设置为此隐藏变量

到目前为止,这批货有效

但是,如果在选择的日期范围大于3个月的情况下运行报告,则会出现文本框,但数据集仍会执行检索数据存储过程


当日期范围验证失败时,是否有方法阻止RS执行数据集?

您可能需要向存储过程添加类似的验证。像下面这样的方法应该可以奏效

IF DATEDIFF(month, @startDate, @endDate) <= 3
   BEGIN
   [your stored procedure here]
   END