eventオブジェクトで実行できる操作
このページでは、eventオブジェクトで実行できる操作を紹介します。
フィールドの値を書き換える
イベントハンドラーがレコードオブジェクトのフィールドの値を上書きしてイベントオブジェクトを返す場合、レコードのフィールドはオブジェクトのそれらの値で更新されます。
アクションで同じフィールドの値を上書きしている場合は、アクションの方が優先されます。
特定のアクションを実行したい場合は、動作条件に合うようなレコードオブジェクトのフィールドの値を用意し、イベントオブジェクトを返すようにして下さい。
- サンプル
-
((APP_ID) => { "use strict"; pd.event.on(APP_ID, 'pd.change.field_1_', (event) => { const record = event.record; if (record.field_1_.value=='') { record.field_2_.value=='option1'; } return event; }); })(pd.APP_ID);
ルックアップを自動取得する
イベントハンドラがlookupフィールドのlookupプロパティにtrueを入力し、イベントオブジェクトを返す場合、それらのlookupフィールドの取得を自動で行います。
lookupフィールドをクリアする場合は、valueプロパティを空値にした状態で、lookupプロパティにtrueを入力します。
- サンプル
-
((APP_ID) => { "use strict"; pd.event.on(APP_ID, 'pd.edit.load', (event) => { const record = event.record; if (!record.field_3_.value) { record.field_3_.value=1; record.field_3_.lookup=true; } return event; }); })(pd.APP_ID);
後続処理を中止させる
イベントハンドラがerrorプロパティにtrueを入力し、イベントオブジェクトを返す場合、後続処理を含む操作がキャンセルされます。
- サンプル
-
((APP_ID) => { "use strict"; pd.event.on(APP_ID, 'pd.create.submit', (event) => { const record = event.record; if (record.field_1_.value=='') { pd.alert('No value entered.'); event.error=true; } return event; }); })(pd.APP_ID);
フィールドの編集を無効にしたり、非表示にする
kumanekoには、フィールドの編集を無効化したり、非表示にするアクション機能が標準搭載されています。
これらのアクションは動作条件を指定出来るようになっていますので、それらのアクションをeventオブジェクトを介して実行する場合は、動作条件に合うようなレコードオブジェクトのフィールドの値を用意し、イベントオブジェクトを返すようにして下さい。