Domino 9 und frühere Versionen > ND6: Entwicklung
@If - mehrere Bedingungen
Andreas Huhn:
Hi,
Ob eine Checkbox gehakt ist überprüfe ich so:
--- Code: ---@If(chk1_1="l" ...
--- Ende Code ---
Nun möchte ich eine Meldung ausgeben wenn keine von 20 Boxen gehakt ist. Einen @And Operator konnte ich nicht finden und in der Hilfe auch sonst keine Möglichkeit die Bedingungen zu verknüpfen, da die Syntax wie folgt lautet:
@If( condition1 ; action1 ; condition2 ; action2 ; ... ; condition99 ; action99 ; else_action )
Nun hab ich mir eine Notkonstruktion überlegt mit der ich zumindest das Ziel erreichen könnte, auch wenn es alles andere als elegant ist:
--- Code: ---n := 0;
@If(chk1_1!="l" ; n := n+1 ; chk1_2!="l" ; n := n+1 ; chk1_3!="l" ; n := n+1 ; chk1_4!="l" ; n := n+1 ; chk1_5!="l" ; n := n+1 ; chk1_6!="l" ; n := n+1 ; chk1_7!="l" ; n := n+1 ; chk1_8!="l" ; n := n+1 ; chk1_9!="l" ; n := n+1 ; chk1_10!="l" ; n := n+1 ; chk1_11!="l" ; n := n+1 ; chk1_12!="l" ; n := n+1 ; chk1_13!="l" ; n := n+1 ; chk1_14!="l" ; n := n+1 ; chk1_15!="l" ; n := n+1 ; chk1_16!="l" ; n := n+1 ; chk1_17!="l" ; n := n+1 ; chk1_18!="l" ; n := n+1 ; chk1_19!="l" ; n := n+1 ; chk1_20!="l" ; n := n+1 ; n := 0 );
--- Ende Code ---
Nun müsste doch n = 20 sein wenn kein Haken gesetzt ist. Wenn ich den Wert von n mit @SetField in ein Feld schreiben lasse kommt aber immer 1 raus, egal ob keiner oder alle Haken gesetzt sind.
Könnt ihr mir eine etwas elegantere Lösung dafür aufzeigen?
Grüße,
Andreas
Axel:
Hi,
das ist auch logisch so. Denn du deklarierst n jedesmal neu. Erstze n:n+1 überall durch @Set("n"; n+1).
--- Code: ---n := 0;
@If(chk1_1!="l" ; @Set("n"; n+1) ; chk1_2!="l" ; @Set("n"; n+1) ; .... chk1_20!="l" ; @Set("n"; n+1) ; "" );
--- Ende Code ---
Axel
Andreas Huhn:
Das funktioniert leider noch nicht ganz.
Wenn ich n NICHT initialisiere ( n := 0; -> seit R6 doch eigentlich nicht mehr nötig, oder?) dann wird eine Fehlermeldung ("Falscher Datentyp für Operator oder @Funktion: Text erwartet") geworfen.
Ansonsten wird immer 1 ausgegeben:
--- Code: ---n:=0;
@If(chk1_1!="l" ; @Set("n"; n+1) ; chk1_2!="l" ; @Set("n"; n+1) ; chk1_3!="l" ; @Set("n"; n+1) ; chk1_4!="l" ; @Set("n"; n+1) ; chk1_5!="l" ; @Set("n"; n+1) ; chk1_6!="l" ; @Set("n"; n+1) ; chk1_7!="l" ; @Set("n"; n+1) ; chk1_8!="l" ; @Set("n"; n+1) ; chk1_9!="l" ; @Set("n"; n+1) ; chk1_10!="l" ; @Set("n"; n+1) ; chk1_11!="l" ; @Set("n"; n+1) ; chk1_12!="l" ; @Set("n"; n+1) ; chk1_13!="l" ; @Set("n"; n+1) ; chk1_14!="l" ; @Set("n"; n+1) ; chk1_15!="l" ; @Set("n"; n+1) ; chk1_16!="l" ; @Set("n"; n+1) ; chk1_17!="l" ; @Set("n"; n+1) ; chk1_18!="l" ; @Set("n"; n+1) ; chk1_19!="l" ; @Set("n"; n+1) ; chk1_20!="l" ; @Set("n"; n+1) ; "" );
@SetField("Z1";n)
--- Ende Code ---
Z1 ist ein Textfeld.
klaussal:
... und n ist ein... ???-Feld ;D
Andreas Huhn:
Nein, das Feld n gibt es jetzt nicht mehr. n ist jetzt ja auch eine temporäre Variable.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln