首页 > 解决方案 > 如果日期验证失败,则停止 RS 执行数据集

问题描述

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

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 个月"

并且 Visibility 属性设置为此隐藏变量。

到目前为止,这很多作品

但是,当报告以大于3个月的日期范围运行时,出现文本框,但数据集仍执行检索数据(存储过程)。

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

标签: sql-serverreporting-services

解决方案


您可能需要向存储过程添加类似的验证。像下面这样的东西应该可以工作。

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

推荐阅读