Or - Bedingung

  • Guten Morgen an alle,
    ich hab' ein Problem mit der ja so einfachen Or-Bedingung.
    Ich habe eine Schleife die nur unter bestimmten Bedingungen durchlaufen werden soll.
    If ( _
    Source.FieldGetText("Status") = "Neu" Or _
    Source.FieldGetText("Status") = "Vorprüfung nicht erfolgreich" Or _
    Source.FieldGetText("Status") = "abgelehnt vom Vorgesetzten" Or _
    Source.FieldGetText("Status") = "abgelehnt von Personalverwaltung" _
    ) Then


    Call Check_Error(Init_Fields(Source), Continue)
    If Continue Then Call Get_MinZeiten(Source)
    ... weitere Überprüfungen ...


    End If


    Aber diese Schleife wird nur durchlaufen, wenn der Status "neu" ist. Bei allen anderen Statien wird die Bedingung einfach ignoriert.
    Wo liegt der Fehler???
    Kann mir jemand helfen?
    Gruß Karin

    • Offizieller Beitrag

    wahrscheinlich handelt es sich bei dem Status-Feld um eine Optionsfeld. Mit FieldGetText stehst Du immer auf dem ersten Wert und liest nur diesen aus.


    Hole Dir doch den Feldinhalt im Backend.

    Code
    dim doc as NotesDocument
    set doc = Source.Document
    If (_
    doc.Status(0) = "Neu" Or _
    doc.Status(0) = "Vorprüfung nicht erfolgreich" Or _
    doc.Status(0) = "abgelehnt vom Vorgesetzten" Or _
    doc.Status(0) = "abgelehnt von Personalverwaltung" _
    ) Then


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Setz doch mal um die einzelnen Bedingungen Klammern.
    ich hab häufiger festgestellt, dass sonst bei And und Or Verknüpfungen recht seltsame Ergebnisse herauskommen.


    Also so:


    If ( _
    (Source.FieldGetText("Status") = "Neu") Or _
    (Source.FieldGetText("Status") = "Vorprüfung nicht erfolgreich") Or _
    (Source.FieldGetText("Status") = "abgelehnt vom Vorgesetzten") Or _
    (Source.FieldGetText("Status") = "abgelehnt von Personalverwaltung") _
    ) Then


    Call Check_Error(Init_Fields(Source), Continue)
    If Continue Then Call Get_MinZeiten(Source)
    ... weitere Überprüfungen ...


    End If

  • Hi,


    schau doch mal in der Hilfe unter "Select Case" ...


    Die Cases lassen sich auch nach dem folgenden Schema zusammenfassen


    Case "Neu", "Alt", "keine Ahnung": mach dieses
    case "1", "2", "3": mach jenes

    Für jedes Problem gibt es eine einfache Lösung, die es noch schlimmer macht.