Остановить RS от выполнения набора данных при сбое проверки даты

#sql-server #reporting-services

#sql-сервер #отчеты-службы

Вопрос:

У меня есть следующий код, который проверяет диапазон дат, выбранный в моем отчете

 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 от выполнения набора данных при сбое проверки диапазона дат?

Ответ №1:

Вероятно, вам потребуется добавить аналогичную проверку в вашу хранимую процедуру. Должно сработать что-то вроде следующего.

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