30. August 2006 13:01
MyFunction(Var1:Boolean,Var2:Boolean) {
myRec.RESET;
IF myRec.FIND('-') THEN
REPEAT
IF Var1 = TRUE THEN BEGIN
IF (myRec.Var1 = TRUE) AND
((myRec."FieldX" = TRUE) OR
(myRec."FieldZ" = TRUE))
THEN
myRec.MARK(TRUE);
END;
IF Var2 = TRUE THEN BEGIN
IF (myRec.Var2 = TRUE) AND
((myRec."FieldX" = TRUE) OR
(myRec."FieldZ" = TRUE))
THEN
myRec.MARK(TRUE);
END;
UNTIL myRec.NEXT = 0;
myRec.MARKEDONLY(TRUE);
FORM.RUN(50000,myRec);
}
myRec.SETFILTER(Field1, FORMAT(Var1)); // Ja/Nein
myRec.SETFILTER(Field2, FORMAT(Var2)); // Ja/Nein
myRec.SETFILTER(FieldX, '%1|%2', TRUE, FALSE);
myRec.SETFILTER(FieldZ, '%1|%2', TRUE, FALSE);
IF myRec.FIND('-') THEN BEGIN
myForm.SETTABLEVIEW(myRec);
myForm.RUN();
END;
30. August 2006 13:13
30. August 2006 13:18
Timo Lässer hat geschrieben:Leider kann deine Schleife nicht durch einfache SETFILTER ersetzt werden, da du dort eine OR-Verknüpfung in der Bedingung hast.
30. August 2006 13:29
30. August 2006 13:33
MyFunction(Var1:Boolean,Var2:Boolean)
myRec.RESET;
IF myRec.FIND('-') THEN
REPEAT
myRec.MARK :=
((Var1 AND myRec.Var1) OR
(Var2 AND myRec.Var2)) AND
(myRec."FieldX" OR myRec."FieldZ");
UNTIL myRec.NEXT = 0;
myRec.MARKEDONLY(TRUE);
FORM.RUN(50000,myRec);
30. August 2006 13:47
30. August 2006 14:05