Es gibt verschiedene Verfahren, um solcherart Berechnungen durchzuführen - Du musst Dir da genau überlegen, was in Deiner Situation am besten passt.
Variante 1:
Das Ergebnisfeld "Ergebnis" ist berechnet, als Formel gibst Du den eigenen Feldnamen an (Ergebnis). Das Feld bezieht sich damit auf sich selbst.
Im Buhtong belegst Du nun das Feld:
FIELD Ergebnis := Ergebnis; (notwendige Initialisierung)
- Prüfung, ob die erforderlichen Felder (richtig) belegt sind (Beispiel:
@If (@IsNumber (Jahresbeitrag); ""; @Return (""))
(Es passiert nix, wenn Jahresbeitrag numerisch ist, sonst bricht @Return den ganzen Vorgang an dieser Stelle ab)
- Wenn kein fehlerhaftes Feld einen Abbruch erzwang, führst Du jetzt Deine Berechnung durch:
hilfswert := Jahresbeitrag * x + y; (oder so)
- Setzen des Feldes:
@SetField ("Ergebnis"; hilfswert)
Nachteil: Wenn jemand Feldwerte ändert (anderer Hersteller, anderer Typ, andere Zahlweise etc.), dann bleibt der ursprüngliche Ergebniswert erhalten, wenn der Buhtong nicht gedrückt wird.
Variante 2:
"Ergebnis" ist wieder ein berechnetes Feld. Dieses Mal steht aber die Formel in keinem Buhtong, sondern im Feld selbst. Bevor abschliessend die Berechnung erfolgt, prüfst Du ähnlich wie im Buhtong die Gültigkeit aller erforderlichen Werte und brichst den Formelapparat wie im Buhtong sofort ab, wenn ein Wert nicht passt.
Alternativ - wenn das besser passt: Du weist jeden Deiner Faktoren innerhalb der Formel einer Hilfsvariablen zu und belegst diese mit 0, wenn das Feld nicht oder fehlerhaft belegt wurde. Beispiel:
aufschlag := @If (Zahlweise = ""; 0; Zahlweise = "jährlich"; 1; 1,07)
Du berechnest dann mit Deinen Hilfsvariablen. Das Ergebnis ist 0, wenn einer der Werte nicht gepasst hat.
Diese Aufstellung erhebt keinen Anspruch auf Vollständigkeit ;-)
HTH,
Bernhard