19. Dezember 2006 09:51
Hallöchen!
Nun Prinzipiell ist es der OnValidate Trigger der hier anzuwenden ist. Da das Feld Saldo aber ein FlowField ist (ich nehme an wir sprechen von der Tabelle 18 Debitor und Du willst wissen wie viel Prozent des Kreditlimits ausgeschöpft sind) wird der Saldo nicht eingegeben - kein OnValidate - sondern muß anders berechnet werden.
Code Beispiele:
- Code:
Kreditlimit OnValidate()
SetIndikator();
Function SetIndikator()
CALCFIELDS(Saldo);
IF Kreditlimit <> 0 THEN
"Indikator %" := Saldo / Kreditlimit * 100
ELSE
"Indikator %" := 0;
MODIFY; // "Indikator %" als Feld in T18 ?
Wie gesagt, das Problem ist das FlowField Saldo. Es wird zwar automatisch kalkuliert wenn man z.B. die Debitorenkarte öffnet (Trigger OnAfterGetRecord oder OnAfterGetCurrentRecord), allerdings sind in diesen Triggern keine Transaktionen erlaubt, also kein Modify.
In diesem Fall müsste man den Indikator manuell per Funktionsaufruf aktualisiseren.
Anders, wenn Indikator kein echtes Feld sein soll, sondern lediglich eine Variable die auf der Form zur Laufzeit angezeigt werden soll; hier entfällt der Modify und die Funktion SetIndikator() kann in OnAfterGetRecord aufgerufen werden.
Ich hoffe, daß hilft Dir weiter ...
Gruß,