columns.AddChoiceHash
概要¶
columnsオブジェクトの「AddChoiceHashメソッド」です。サーバスクリプトで項目の選択肢一覧を動的に設定することができます。AddChoiceHashを複数回呼ぶことによって、選択肢を追加します。1回目のAddChoiceHashが呼ばれるとサーバスクリプトの実行前にセットされていた選択肢は全てクリアされます。
制限事項¶
- 分類項目のみ使用できます。
前提条件¶
- 対象となる項目の選択肢一覧に、選択肢が1つ以上設定されている必要があります。
- サーバスクリプトの条件が「画面表示の前」、「行表示の前」の場合に有効となります。
構文¶
パラメータ¶
パラメータvalueを省略した場合、AddChoiceHash(key, key)と解釈されます。
| No | パラメータ | 型 | 必須 | 概要 |
|---|---|---|---|---|
| 1 | key | object | ○ | キー |
| 2 | value | object | - | 値 |
戻り値¶
戻り値はありません。
使用例¶
下記の例では、分類AにTEST1~TEST5までの選択肢一覧を設定します。
valueを指定した場合¶
JavaScript¶
この場合、分類項目の選択肢一覧を以下のように指定した場合と同じ表示結果を得られます。
valueを省略した場合¶
JavaScript¶
この場合、分類項目の選択肢一覧を以下のように指定した場合と同じ表示結果を得られます。
サンプルコード¶
1. 選択肢を動的に制御
ある項目の入力値に応じて、選択肢を動的に制御します。
このサンプルでは、分類Aに指定された値に応じ、スクリプト内で定義した条件にあわせ分類Bの選択肢を設定しています。
テーブル設定¶
分類Aの設定
分類Bの設定
未選択状態¶
分類Bには何も表示されない
選択状態¶
分類Aの選択に合わせ選択肢が表示される
JavaScript¶
2. グループ・組織に所属するメンバーを選択肢に設定する
グループ、組織を選択肢として設定しておき、その選択にあわせ所属するメンバーを別の選択肢項目へ設定します。
このサンプルでは、以下のように制御しています。
JavaScript¶
// グループ所属メンバーを取得して、選択肢にセット
const group = groups.Get(Number(model.ClassA));
if (group) {
columns.ClassB.ClearChoiceHash();
const members = group.GetMembers();
for (const member of members) {
// GetMembersではUserIdしか取れないので、users.Getでユーザ情報を取得
const user = users.Get(member.UserId);
columns.ClassB.AddChoiceHash(user.UserId, user.Name);
}
}
// 部署所属メンバーを取得して、選択肢にセット
const dept = depts.Get(Number(model.ClassC));
if (dept) {
columns.ClassD.ClearChoiceHash();
const members = dept.GetMembers();
for (const member of members) {
columns.ClassD.AddChoiceHash(member.UserId, member.Name);
}
}
対応バージョン¶
| 対応バージョン | 内容 |
|---|---|
| 1.2.4.0 以降 | 機能追加 |
| 1.4.23.0 以降 | パラメータvalueを省略可能に |











