マスクスクリプトを使ったマスクのプログラミング

Maskenskriptを用いると、netERP 本体を変更せずに入力の検証や補完を行えます。

設計とコード

マスクデザイナーでは F12 で設計とコードを切り替えます。F9 でスクリプトを検査し、F1 で「スクリプトで何ができるか?」のヘルプを開きます。ヘルプにはダブルクリックで挿入できる35の例が含まれます。言語は Pascal(netPascalScript)で識別子は英語名です。

イベント

  • マスク: BeforeOpen, AfterOpen, BeforeSave, AfterSave, BeforeClose, OnValidate.
  • フィールド: OnEnter, OnExit, OnChange, OnClick.

オブジェクトインスペクタでは、(新規)を選択して「Ereignisse」タブに適切なルーチンを作成します。例えば FormBeforeSave。空のルーチンは保存時に netERP が削除します。

例

procedure FormBeforeSave(Sender: TObject);
begin
  if Form.Field('description') = '' then
    Form.Cancel('名称を入力してください。');
end;

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

スクリプトでできること

フィールドの読み取りと設定(Form.Field, Form.SetField)、フィールドの表示/非表示や使用可否の切替(SetVisible, SetEnabled)、フォーカスの設定、セクションの開閉、メッセージや確認ダイアログの表示(Message, Confirm)、保存や閉じる操作の中断(Form.Cancel)。Form.IsNew, Form.Module, Form.Id はレコードに関する情報を返します。フィールドキーはマスクのデザインから取得します。

スクリプトのエラーは一度だけ報告され、マスクは引き続き操作可能です。操作を中断できるのは Form.Cancel のみです。