none
iif() funktioniert nicht RRS feed

  • Frage

  • Hallo,

    ich habe (in Sql Server 2008-Reporting Services Projekt) einen Bericht erstellt mit dem Parameter-Monat. 

    Ich will im Header des Berichts den ausgewählten Monat+1 (den nächsten Monat) anzeigen.

    =IIf( Parameters!Monat.Value <> 12, MonthName(Parameters!Monat.Value+1), MonthName(1)) oder
    =IIf( Parameters!Monat.Value <> 12, MonthName(Parameters!Monat.Value+1), "Januar")

    beide Ausdrücke funktionieren für den Monat 12 nicht, es wird error ausgegeben. 
    Bei den allen anderen Monate bekomme ich das gewünschte Ergebnis.

    Wo mache ich in dem iif()-Statement fehler?

    Das ganze habe ich auch mit dem folgenden Ausdruck probiert,
    =MonthName(Int(dateadd("m",1,Parameters!Monat.Value)))
    hat aber auch nicht geklappt!

    Bin sehr dankbar für jede Hilfe

    Gruß,

    Dienstag, 23. März 2010 15:16

Antworten

  • Hallo,

    das Problem dürfte bei der Auswertungsreihenfolge von IIF liegen,
    das immer alle Ausdrücke - also auch den Wahr und Falsch-Abschnitt auswertet.
    Dadurch kommt es durch MonthName(12 + 1) zu einem Fehler.

    Verwende etwas wie:

    =MonthName( IIf( Parameters!Monat.Value <> 12, Parameters!Monat.Value + 1, 1 ) )

    denn dadurch wird die Auswertung der Ausdrücke unkritisch.

    Gruß Elmar

    • Als Antwort markiert oezlemk Mittwoch, 24. März 2010 07:52
    Dienstag, 23. März 2010 23:37
    Beantworter

Alle Antworten

  • Hallo,

    das Problem dürfte bei der Auswertungsreihenfolge von IIF liegen,
    das immer alle Ausdrücke - also auch den Wahr und Falsch-Abschnitt auswertet.
    Dadurch kommt es durch MonthName(12 + 1) zu einem Fehler.

    Verwende etwas wie:

    =MonthName( IIf( Parameters!Monat.Value <> 12, Parameters!Monat.Value + 1, 1 ) )

    denn dadurch wird die Auswertung der Ausdrücke unkritisch.

    Gruß Elmar

    • Als Antwort markiert oezlemk Mittwoch, 24. März 2010 07:52
    Dienstag, 23. März 2010 23:37
    Beantworter
  • Hallo,

    das Problem dürfte bei der Auswertungsreihenfolge von IIF liegen,
    das immer alle Ausdrücke - also auch den Wahr und Falsch-Abschnitt auswertet.
    Dadurch kommt es durch MonthName(12 + 1) zu einem Fehler.

    Verwende etwas wie:

    =MonthName( IIf( Parameters!Monat.Value <> 12, Parameters!Monat.Value + 1, 1 ) )

    denn dadurch wird die Auswertung der Ausdrücke unkritisch.

    Gruß Elmar

    Dienstag, 23. März 2010 23:37
    Beantworter
  • Hallo,

    vielen Dank für die Antwort. Das hat mein Problem gelöst.

    Gruß

    Mittwoch, 24. März 2010 07:51