$p.on
概要¶
監視項目がイベント発火した時に、記述した任意処理を実行する機能になります。
構文¶
JavaScript¶
各パラメータの説明¶
| パラメータ名 | 説明 |
|---|---|
| イベント名 | Ajaxのイベント名 |
| 監視項目 | 対象となる項目のデータベース上のカラム名 |
| 任意処理 | イベント発火時の処理 |
記述例¶
JavaScript¶
サンプルコード¶
Note
コード内の【 ... 】は適宜修正してください。
1. 複数項目の組み合わせで重複チェックする
新規作成・編集画面で、タイトル・対象日・作成者(分類A・分類B・分類C)のいずれかの値が変更されるたびに、3項目の値を結合したキーを分類Gに自動的に設定します。
分類Gに「重複禁止」を設定しておくことで、3項目の組み合わせによる重複を検知できます。
実務での使いどころ¶
Pleasanterの項目設定にある「重複禁止」は、単一の項目にしか設定できません。
タイトル・対象日・作成者のように、複数項目の組み合わせで重複を防ぎたい場合は、対象項目の値を結合した値を格納する項目を別途用意し、その項目に重複禁止を設定する必要があります。
本サンプルは、その結合キーを自動生成する部分を担います。
事前準備¶
- 重複チェックの対象にしたい3項目を用意します(例:分類A=タイトル、分類B=対象日、分類C=作成者)。
- 結合キーを格納する分類項目を1つ用意します(例:分類G)。
- 「テーブルの管理 > 項目」タブで分類Gを選択します。
- 「重複禁止」にチェックを入れます。
- 分類Gは通常の項目として画面に表示したままでも動作します。ユーザの目に触れさせたくない場合は、非表示にする方法を別途検討してください(本サンプルでは非表示化は扱いません)。
- スクリプトを登録します。
- 「テーブルの管理 > スクリプト」タブで「新規作成」を選択します。
| 設定項目 | 設定値 |
|---|---|
| タイトル | 任意の名前(例:3項目の重複チェック用キー生成) |
| スクリプト | 下記サンプルコードを貼り付け |
| 出力先 | 「全て」のチェックを外し、「新規作成」「編集」にチェック |
// 分類A・分類B・分類Cの値を結合し、重複チェック用の分類Gに設定する
function setDuplicateKey() {
$p.set(
$p.getControl('ClassG'),
`${$p.getValue('ClassA')}${$p.getValue('ClassB')}${$p.getValue('ClassC')}`,
);
}
// 分類A・分類B・分類Cのいずれかが変更されたら、結合キーを再生成する
$p.on('change', 'ClassA', function () {
setDuplicateKey();
});
$p.on('change', 'ClassB', function () {
setDuplicateKey();
});
$p.on('change', 'ClassC', function () {
setDuplicateKey();
});
