/******************************************************************************/ /*** cimdata software GmbH ***/ /*** Hohentrüdinger Str. 11 ***/ /*** 91747 Westheim ***/ /***------------------------------------------------------------------------***/ /*** Erstellt von: $BENUTZER *** Erstellt am: $TAGESDATUM *** ***/ /***------------------------------------------------------------------------***/ /*** Wiki-Änderungen: ***/ /*** ***/ /*** ***/ /*** ***/ /******************************************************************************/ {{indexmenu_n>0120}} ======Scripting cimERP====== Scripte können in cimERP je Maske oder je Feld definiert werden. ===== Script je Maske (Fenster) ===== Mit dieser Funktion kann der Anwender in cimERP für jede Maske zusätzliche Programmlogik definieren. Die Logik kann an drei Maskenereignissen definiert werden: - Script Start Fenster: Dieses Skript wird abgearbeitet, wenn die Maske gestartet wird. - Script Ende Fenster: Dieses Skript wird abgearbeitet, wenn die Maske beendet wird. - Script Speichern/Drucken Fenster: Dieses Skript wird abgearbeitet, wenn die Maske gespeichert wird. - Script Start Fenster fertig: Dieses Skript wird abgearbeitet, wenn der Aufbau und die Abarbeitung der zu startenden Maske fertig ist. ===== Script je Eingabefeld ===== Mit dieser Logik kann der Anwender für Eingabefelder zusätzliche Programmlogik definieren. Feldskripte sind immer global für ein Feld. Die Logik kann an drei Feldereignissen definiert werden: - Script Feldänderung: Dieses Skript wird abgearbeitet, wenn der Feldinhalt vom Anwender geändert wird. Dazu ist es erforderlich, das entsprechende Feld zu verlassen. - Script Feldinitialisierung: Dieses Skript wird abgearbeitet, wenn das Feld den aktiven Fokus (das Feld wird „betreten“) bekommt. - Script Feldverlassen: Dieses Skript wird abgearbeitet, wenn das Feld verlassen wird. Der Unterschied zu Ereignis 1 (Feldänderung) liegt darin, dass dieses Ereignis auch durchlaufen wird, wenn sich der Feldwert nicht geändert hat. ===== Beispiel Scripte ===== declare fobj = FieldObject with null, personal_nr = integer not null with default, enddeclare begin // Auslesen Feldwert fobj = fp.Frame.FieldByName(name = 'personal_nr'); if fobj is not null then // Feld gefunden - Wert holen fobj.GetFieldValue(value = byref(personal_nr)); if personal_nr > 0 then // Positionieren Cursor fobj = null; fobj = fp.Frame.FieldByName(name = 'artikel_nr'); if fobj is not null then fp.SetInputFocusField(inpf = fobj); endif; endif; endif; return 0; end