Domino 9 und frühere Versionen > ND6: Entwicklung

@If - mehrere Bedingungen

(1/5) > >>

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