Masken programmieren mit dem Maskenskript

Mit dem Maskenskript prüfst und ergänzt du Eingaben, ohne netERP selbst zu ändern.

Entwurf und Code

Im Maskendesigner wechselt F12 zwischen Entwurf und Code. F9 prüft das Skript, F1 öffnet die Hilfe „Was kann das Skript?“ mit 35 Beispielen, die du per Doppelklick einfügst. Die Sprache ist Pascal (netPascalScript) mit englischen Namen.

Ereignisse

  • Maske: BeforeOpen, AfterOpen, BeforeSave, AfterSave, BeforeClose, OnValidate.
  • Feld: OnEnter, OnExit, OnChange, OnClick.

Im Objektinspektor legt (neu) auf dem Reiter „Ereignisse“ die passende Routine an, zum Beispiel FormBeforeSave. Leere Routinen entfernt netERP beim Speichern.

Beispiel

procedure FormBeforeSave(Sender: TObject);
begin
  if Form.Field('description') = '' then
    Form.Cancel('Bitte die Bezeichnung angeben.');
end;

procedure CodeOnExit(Sender: TObject);
begin
  Form.SetField('code', UpperCase(Form.Field('code')));
  Form.SetEnabled('zip', Form.Field('country') = 'DE');
end;

Was das Skript kann

Felder lesen und setzen (Form.Field, Form.SetField), Felder ein- und ausblenden oder sperren (SetVisible, SetEnabled), den Fokus setzen, eine Sektion öffnen, Meldungen und Rückfragen zeigen (Message, Confirm) und Speichern oder Schließen abbrechen (Form.Cancel). Form.IsNew, Form.Module und Form.Id geben Auskunft über den Datensatz. Die Feldschlüssel stammen aus dem Design der Maske.

Ein Fehler im Skript wird einmal gemeldet; die Maske bleibt bedienbar. Nur Form.Cancel bricht eine Aktion ab.