Onmodify deaktivieren für ein Feld

15. September 2016 08:42

Hallo,
ich haben folgenden Code:
TESTFIELD("Quantity Shipped Base",0);
im OnModify einer Tabelle.

Nun möchte ich diesen Trigger für die Änderung eines Feldes deaktivieren.

Wie könnte ich das lösen.

Besten Dank
stony

Re: Onmodify deaktivieren für ein Feld

15. September 2016 13:49

Du könntest deine Prüfung statt im OnModify Trigger in die OnValidateTrigger der Felder einbauen in denen die Prüfung ablaufen soll. Klar, das ist dann u. U. recht oft die gleiche Zeile Code.

Re: Onmodify deaktivieren für ein Feld

16. September 2016 12:30

Hi,

du kannst dir mit einer Funktion oder in einem Trigger eine globale Variable setzen.

z.B. Funktion SetAvoidTestfield. Beim Aufruf der Funktion setzt du eine globale Variable "AvoidTestfield" auf TRUE. Alternativ kannst du die Variable in OnValidate Trigger eines bestimmten Felds setzen.
Deinen Programmcode im OnModifyTrigger erweiterst du so, dass dieser nur durchlaufen wird, wenn deine Variable = FALSE ist, also

Code:
DeinRec.SetAvoidTestfield(TRUE);
DeinRec.MODIFY;
DeinRec.SetAvoidTestfield(FALSE);


Code:
IF NOT AvoidTestfield THEN
  Dein Code


Du musst natürlich sicherstellen, dass du die Globale dann wieder auf FALSE zurücksetzt, nachdem du deine Änderung gemacht hast.