Domino 9 und frühere Versionen > ND6: Entwicklung
Feld Formeln
bikerboy:
So hier einmal mein Versuch. Ich habe das mal so gelernt m dass die Bedingungen so seperat formuliert werden müssen, hatte mal ein ähnliches Problem.
--- Code: ---@IF( A != "" | B!="" | C! = "" | D != "" ; Feld X ; "");
@IF( A != "" & H != ""| B!="" & H != ""| C! = "" & H != ""| D != "" & H != "";Feld Y;"");
@IF( A != "" & I != ""| B!="" & I != ""| C! = "" & I != ""| D != "" & I != "";Feld Z;"");
@IF( E != "" | F "= "" ; 0 ; "");
@IF( G != "" ; Feld w ; "" );
@IF( x < 250 | y < 250 | z < 250 ; 250 ; "" );
--- Ende Code ---
LN4ever:
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
Bille:
Hallo Sabine,
dass bei Deiner Formel nichts berechnet wird, liegt wohl daran, dass Du zum Schluss die Variable tmp7 ausgibst, diese aber keinen Inhalt hat.
tmp1:=@If (Dialogfeld!= A|B|C|D;Feld X;0);
tmp2:=@If (Dialogfeld!= A|B|C|D & H=""; Feld Y;0);
tmp3:=@If (Dialogfeld!= A|B|C|D & I=""; Feld Z;0);
tmp4:=@If (Dialogfeld!= E|F|;0;0);
tmp5:=@If (Dialogfeld!= G; Feld W;0);
tmp6:=@If (tmp1 |tmp2 |tmp3 < 250;250;0);
tmp6
Abgesehen davon solltest Du natürlich die Hinweise von Norbert beachten.
HTH
Bille
sabinerin:
...an dieser Stelle möchte ich mich jetzt ersteinmal für die phantastischen Bemühungen bedanken!!
Das war mein erster Forumeintrag - ich bin begeistert. Danke..
Ich versuche das umzusetzen was Ihr empfohlen habt. Aber ich scheitere schon an dem Feld "berechnet beim anlegen" für den Dialoglisteninhalt. Was für ne Formel? Wie steuern?
Naja - heute mach ich nix mehr...
Ich wünsche Euch ein schönes Wochenende!
Gruß Sabine
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln