Frage

Ich habe folgend als Wert für meine Textbox in SSRS-Bericht:

   =iif(IsNothing(Fields!MyDate.Value), "", Format(Fields!MyDate.Value.AddDays(30), "MMMM dd, yyyy"))

Es gibt mir einen "# Fehler" jedes Mal MyDate null ist.

Wie kann ich dieses Problem umgehen?

UPDATE:

ich diese benutzerdefinierte Funktion geschrieben, wurde es von den Fehlern beseitigen, sondern kehrt zum 31. Januar 0001, wenn null Datum überschritten ist.

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, Felder MyDate.Value!)

War es hilfreich?

Lösung

Das Problem ist natürlich, dass VB IIF-Anweisung beide Seiten wertet unabhängig vom Ergebnis. Also selbst wenn Ihr Feld null ist es immer noch etwas „Value.DateAdd“ Aufruf zu bewerten.

Wenn ich mich richtig erinnere, hat SSRS seine eigene „DateAdd“ -Funktion, die Sie stattdessen verwenden können. So können Sie so etwas wie dieses (in der Dokumentation ‚Coz diese aus dem Speicher ist) tun können:

=Iif(IsNothing(Fields!MyDate.Value), "", Format(DateAdd("d", 30, Fields!MyDate.Value), "MMMM dd, yyyy"))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top