7. März 2008 05:24
ich würde dafür ein ganz normales BoolFeld nehmen, in dessen OnValidateTriger der Tabelle dann einfach den Wert als Ergebnis einer UND-Verknüpfung aller zu testenden Boolfelder setzen. und im OnValidate jedes Testfelds ein Validate dieses Ergebnisfeldes anstossen.
Also wenn du 3 zu prüfenden Felder hast die wir jetzt mal TestBool1, TestBool2 und TestBool3 nennen und das Ergebnis, welches wir PrüfBool nennen, dann kommt in jedem OnValidate-Trigger des TestBool1, TestBool2 und TestBool3-Feldes in der Tabelle Item folgender Code
- Code:
VALIDATE(PrüfBool);
und im OnValidate von Prüfbool:
- Code:
PrüfBool:=TestBool1 AND TestBool2 AND TestBool3;
und dieses Feld Prüfbool sinnvollerweise schreibschützen. (editable=no)
Wenn bereits sehr viele Datensätze mit bereits angeklickten Testbool-Feldern existieren, macht es Sinn einmal mit einer Schleife über alle Itemdatensätze zu laufen, den Item.Validate(Prüfbool) aufzurufen und mit modify zu speichern um die Startwerte zu setzen. Du musst nun nur noch dafür sorgen, dass die Testboolfelder immer nur mit Validate gesetzt werden und nicht von irgendwo per normaler Zuweisung (Testbool:=false).