マスクスクリプトを使ったマスクのプログラミング
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 のみです。
