ssrs에서 .adddays ()를하기 전에 null 값을 확인하는 방법?
-
02-07-2019 - |
문제
SSRS 보고서의 텍스트 상자의 값은 다음과 같습니다.
=iif(IsNothing(Fields!MyDate.Value), "", Format(Fields!MyDate.Value.AddDays(30), "MMMM dd, yyyy"))
그것은 mydate가 null이 될 때마다 "#error"를 제공합니다.
이 문제를 어떻게 해결합니까?
업데이트:
이 사용자 지정 기능을 작성했는데 오류가 제거되었지만 Null 날짜가 통과되면 1 월 31 일에 반환됩니다.
Public Shared Function NewDate(myDate as DateTime, days as integer) AS string
IF ISNOTHING(myDate) OR ISDBNULL(myDate) Then
NewDate = " "
ELSE
NewDate = Format(myDate.AddDays(days), "MMMM dd, yyyy")
END IF
End Function
@Matt Hamilton : Dateadd ( "D", 30, Fields! MyDate.Value)
해결책
물론 문제는 VB의 IIF 진술이 결과에 관계없이 양측을 평가한다는 것입니다. 따라서 필드가 Null이라도 여전히 "Value.dateadd"호출을 평가하고 있습니다.
올바르게 기억하면 SSRS에는 대신 사용할 수있는 고유 한 "Dateadd"기능이 있습니다. 따라서 이와 같은 일을 할 수 있습니다 (문서 'Coz this is is memory에서 확인) : :
=Iif(IsNothing(Fields!MyDate.Value), "", Format(DateAdd("d", 30, Fields!MyDate.Value), "MMMM dd, yyyy"))
제휴하지 않습니다 StackOverflow