Wie soll man das pflegen können, wenn sich einmal Änderungen bei der Provisionierung oder eine Umformulierung der DialoglistenAuswahlwerte ergeben ?
Erstens:
Die Dialoglisteninhalte in einem Feld BERECHNET BEIM ANLEGEN definieren und im Dialogfeld selbst die Auswahl darüber steuern. Das hat den Vorteil, daß Dokumente konsistent bleiben, auch wenn sich die Dialogliste einmal ändert, weil jedes Dokument die Auswahl enthält, die bei seiner Erstellung gültig war.
Das hat den Nachteil, daß eine Volltextsuche über den Dialogfeldinhalt nur noch mit Feldangabe möglich ist, denn jedes Dokument enthält alle Auswahlmöglichkeiten in dem Feld der Dialoglisteninhalte.
Zweitens:
Formalisiere deine Auswahlmöglichkeiten in kleineren Schritten. Dann behältst du den Überblick und kannst deine Ergebnisse auch testen (mit Zwischenergebnissen).
Drittens:
Gib deinen Ausdrücken sprechende Namen und kommentiere sie. In einem Jahr weißt du sonst nicht mehr, warum du diesen Formelsalat so angemengt hast.
Viertens:
Führe ein Feld ein, daß die errechnete Provision nach den in der jeweils aktuellen Provisionsrichtlinien speichert und sich nicht mehr ändert, wenn sich die Richtlinie ändert. Dann brauchst du noch einen Button, der dir dieses Feld wieder auf 0 setzt, damit die Provision doch neu berechnet werden kann (wenn die erste Berechnung mit falschen Schlüsselwörtern erfolgte z.B.)
ListeFallABCD:=@Subset(DIALOGLISTWERTE;4);
ListeFallEF:=@Subset(@Subset(DIALOGLISTWERTE;6);-2);
ListeFallG:=@Subset(@Subset(DIALOGLISTWERTE;7);-1);
MindestBetrag:=250;
FallABCD:=@If(@IsMember(Dialogliste;ListeFallABCD);@True;@False);
FallEF:=@If(@IsMember(Dialogliste;ListeFallEF);@True;@False);
FallG:=@If(@IsMember(Dialogliste;ListeFallG);@True;@False);
tmp1:=@If(FallABCD;@If(H="";Y;I="";Z;X);0);
ProvisionABCD:=@If(tmp1>0;tmp1<MindestBetrag;MindestBetrag;tmp1);
Provision:=@If(FallEF;0;FallG;W;ProvisionABCD);
FIELD PROVISIONBERECHNET:=@If(PROVISIONBERECHNET=0 & !@IsError(Provision);Provision;PROVISIONBERECHNET);
Provision
So kann es klappen.
Gruß
Norbert