0

Verständnisfrage "if.. then.. else"

Hallo, wie erklärt sich bei folgenden Scripts, welche Beide das selbe Ergebnis bringen soll(t)en, dass Script-1 mit "!=" nicht funktioniert aber Script-2 mit "=" das gewünschte Ergebnis bringt.....?, DANKE.

Script-1       let sw01 := 'Datum Anfrage/Vorfall' + 3;
                    let sw02 := 'Datum Anfrage/Vorfall' + 30;
                    if Art != 3 or Art != 4 then sw02 else sw01 end

Script-2      let sw01 := 'Datum Anfrage/Vorfall' + 3;
                   let sw02 := 'Datum Anfrage/Vorfall' + 30;
                   if Art = 3 or Art = 4 then sw01 else sw02 end

Ich hatte/ hätte mal gehört, das NINOX besser mit "!=" besser umgehen kann als mit "=" und wenn diesen Aussage stimmt/ sinnvoll ist, würde ich Script-1 auch bevorzugen..... 

8 Antworten

null
    • Michi.1
    • vor 1 Jahr
    • Gemeldet - anzeigen

    als laie ....  if Art != 3 or Art != 4 then sw02 else sw01 end welches ergebniss soll denn kommen wenn beides zutrift?

    • ds_W_online
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Michi - na ja, "Art" ist ja ein Auswahlfeld mit mehreren Optionen und wenn z.B. die Option Nr. 1, 2, 5, 6.... ausgewählt ist, dann soll das im Funktionsfeld angezeigte Datum das 'Datum Anfrage/Vorfall' um 30 Tage erhöhen, aber bei der Option 3 oder 4 nur um 3 Tage.......

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      ds. W_de  if Art<3 or Art>4 .... oder  if Art !=3 and Art !=4 ...

    • ds_W_online
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Michi - super und Danke - es funktioniert, aber ;-) bei einem Einfachauswahl-Feld "and" anstatt "or" im Bsp. mit "!=" zu verwenden, verstehe ich noch nicht wirklich ;-(

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      ds. W_de da sonst nur ein wert richtig sein kann, du willst aber 2 Werte ausschließen,  daher "and"

    • ds_W_online
    • vor 1 Jahr
    • Gemeldet - anzeigen

    ..aber ;-) das Datum im Feld 'Datum Anfrage/Vorfall' soll doch über das Einfach-Auswahlfeld "Art" entweder bei "3" oder/ =or "4" nur um 3 Tage  verlängert werden, die gleichzeitige Auswahl, also "3" und/ =and" "4" sind doch gar nicht möglich, zumindest müsste es m.V.n. mit oder/ =or auch funktionieren.

    Im Script sage ich doch, wenn der Wert ungleich/ != 3 oder 4 ist, dann das Datum +30 Tage, sonst - also bei 3 oder/ =or 4 - das Datum +3 Tage..... oder muss ich dem Funktionsfeld mitteilen, dass es sich bei "sonst.." nur um andere Zahlen handelt oder evtl. "sonst.." etwas genauer definieren....? Wo kann ich derartige Grundlagen lernen/ nachlesen.......?

    • Ninox-Professional
    • planoxpro
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Moin ...

    ds. W_de said:
    die gleichzeitige Auswahl, also "3" und/ =and" "4" sind doch gar nicht möglich

    Nein, aber bei einer Negativabfrage soll der Rückgabewert WEDER 3 NOCH 4 sein, also NICHT 3 UND auch NICHT 4 bzw. ungleich 3 UND ungleich 4:

    if Wert != 3 AND Wert != 4 then ...

    Die Bedingung wäre also erfüllt, wenn der Rückgabewert bspw. 1, 2, 5 oder 6 lautet. Ansonsten würde ggf. der optionale else-Zweig ausgeführt.

    Bei einer Positivabfrage ist die Bedingung erfüllt, wenn der Rückgabewert ENTWEDER 3 ODER 4 ist, also gleich 3 ODER gleich 4:

    if Wert = 3 OR Wert = 4 then ...

    Hier ist die Bedingung erfüllt, wenn der Rückgabewert 3 oder 4 lautet. Bei allen anderen Werten würde ggf. der optionale else-Zweig ausgeführt.

    Bei Abfragen sind prinzipiell immer beide Varianten möglich. Welche "besser" ist, ergibt sich zumeist aus dem Kontext. Ist eher eine logische als eine technische Frage, aber die Ninox-Doku kann vielleicht trotzdem weiterhelfen:

    https://docs.ninox.com/de/skripten/einfuehrung-in-ninox-skript/verzweigung-festlegen

      • ds_W_online
      • vor 1 Jahr
      • Gemeldet - anzeigen

      planox. pro - ..super und Dank für die umfangreiche Erklärung bzw. den Link....., DANKE.

Content aside

  • Status Answered
  • vor 1 JahrZuletzt aktiv
  • 8Antworten
  • 150Ansichten
  • 3 Folge bereits