#reporting-services #expression #ssrs-2008 #calculated-field
#службы reporting-services #выражение #ssrs-2008 #вычисляемое поле
Вопрос:
Всем привет, у меня есть выражение в SSRS, которое вычисляет дату выполнения из последнего теста соответствия. Данные верны, если в последнем тесте соответствия указана дата. Однако, если последний тест соответствия равен нулю или пуст, он выдает ошибку «########» ( оно предполагает возврат пустого значения). Как я могу исправить это выражение?
=IIF(IsNothing(Fields!LastFitTest.Value) = True,"",DateAdd(DateInterval.Year,1,Fields!LastFitTest.Value))
Ответ №1:
Попробуйте это…
=IIF(
IsNothing(Fields!LastFitTest.Value),
"",
DateAdd(DateInterval.Year,1,IIF(IsNothing(Fields!LastFitTest.Value), '1900-01-01', Fields!LastFitTest.Value))
)
Проблема заключалась в том, что IIF всегда оценивает как истинное, так и ложное условие, поэтому, когда у вас не было значения в LastFitTest
, ложная сторона не могла оценить, даже если она никогда не будет использоваться.
Все, что мы здесь сделали, это сделали так, чтобы дата, которая обрабатывается в функции DateDiff, всегда возвращала действительную дату. 1 января 1900 года ничего не значит, вы можете указать любую дату, которая вам нравится, поскольку она никогда не будет использована в конечном результате.
Единственным другим изменением было удаление = True
. IsNothing
возвращает True / False, поэтому вам не нужно явно указывать =True.