문제

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"))
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top