Formulieren programmeren met het formulierscript

Met het formulierscript controleer en vul je invoer aan zonder netERP zelf te wijzigen.

Ontwerp en code

In de formulierontwerper wisselt F12 tussen Ontwerp en Code. F9 controleert het script, F1 opent de hulp „Wat kan het script?“ met 35 voorbeelden die je per dubbelklik invoegt. De taal is Pascal (netPascalScript) met Engelse namen.

Gebeurtenissen

  • Formulier: BeforeOpen, AfterOpen, BeforeSave, AfterSave, BeforeClose, OnValidate.
  • Veld: OnEnter, OnExit, OnChange, OnClick.

In de objectinspector maak je mit (neu) op het tabblad „Gebeurtenissen“ de passende routine aan, bijvoorbeeld FormBeforeSave. Lege routines verwijdert netERP bij het opslaan.

Voorbeeld

procedure FormBeforeSave(Sender: TObject);
begin
  if Form.Field('description') = '' then
    Form.Cancel('Voer de omschrijving in.');
end;

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

Wat het script kan

Velden lezen en zetten (Form.Field, Form.SetField), velden in- en uitvouwen of verbergen of vergrendelen (SetVisible, SetEnabled), de focus zetten, een sectie openen, meldingen en vragen tonen (Message, Confirm) en opslaan of sluiten afbreken (Form.Cancel). Form.IsNew, Form.Module en Form.Id geven informatie over het record. De veldsleutels komen uit het ontwerp van het formulier.

Een fout in het script wordt één keer gemeld; het formulier blijft bedienbaar. Alleen Form.Cancel breekt een actie af.