ユーザマニュアル

「プリザンターをもっと活用するために」資料ダウンロード 「プリザンター入門」発売中! 【3/13開催】プリザンター10周年記念イベント!豪華ゲスト続々!

2026/02/02

MANUAL

開発者向け機能:サーバスクリプト:columns.AddChoiceHash

## 概要 「columnsオブジェクト」の「AddChoiceHashメソッド」です。[サーバスクリプト](/ja/manual/table-management-server-script)で[項目](/ja/manual/table-management-what-is-items)の[選択肢一覧](/ja/manual/table-management-choices-text)を動的に設定することができます。AddChoiceHashを複数回呼ぶことによって、選択肢を追加します。1回目のAddChoiceHashが呼ばれると[サーバスクリプト](/ja/manual/table-management-server-script)の実行前にセットされていた選択肢は全てクリアされます。 ## 制限事項 1. [分類項目](/ja/manual/table-management-class)のみ使用できます。 ## 前提条件 1. 対象となる項目の選択肢一覧に、選択肢が1つ以上設定されている必要があります。 1. サーバスクリプトの[条件](/ja/manual/server-script-conditions)が「画面表示の前」、「行表示の前」の場合に有効となります。 ## 構文 ``` columns.[カラム名].AddChoiceHash(key, value); ``` ## パラメータ パラメータvalueを省略した場合、AddChoiceHash(key, key)と解釈されます。 |No|パラメータ|型|必須|概要| |:--|:--|:-:|:-:|:--| |1|key|object|○|キー| |2|value|object| - |値| ## 戻り値 戻り値はありません。 ## 使用例 下記の例では、分類AにTEST1~TEST5までの選択肢一覧を設定します。 ### valueを指定した場合 ##### JavaScript ```js for (let i = 1; i <= 5; i++) { columns.ClassA.AddChoiceHash(i, 'TEST' + i); } ``` この場合、[分類項目](/ja/manual/table-management-class)の[選択肢一覧](/ja/manual/table-management-choices-text)を以下のように指定した場合と同じ表示結果を得られます。 ![](https://pleasanter.org/binaries/996d50bfbff547c6a79518193503ea94) ### valueを省略した場合 ##### JavaScript ```js for (let i = 1; i <= 5; i++) { columns.ClassA.AddChoiceHash('TEST' + i); } ``` この場合、[分類項目](/ja/manual/table-management-class)の[選択肢一覧](/ja/manual/table-management-choices-text)を以下のように指定した場合と同じ表示結果を得られます。 ![](https://pleasanter.org/binaries/975c461c6a7b44b796f874cee682b4d5) ## サンプルコード <details> <summary>1. 選択肢を動的に制御</summary> ある項目の入力値に応じて、選択肢を動的に制御します。 このサンプルでは、分類Aに指定された値に応じ、スクリプト内で定義した条件にあわせ分類Bの選択肢を設定しています。 ##### テーブル設定 分類Aの設定 ![image](https://pleasanter.org/binaries/f648fbd79f2f475a83bcb067f1f0e5f7) 分類Bの設定 ![image](https://pleasanter.org/binaries/d8b091de94b8420b8ea02a2ab72aa93c) ##### 未選択状態 分類Bには何も表示されない ![image](https://pleasanter.org/binaries/340cbb6b50e0483994811a00704e6ba7) ##### 選択状態 分類Aの選択に合わせ選択肢が表示される ![image](https://pleasanter.org/binaries/80fbf46bdc4a4216b8309592b9bedbb7) ![image](https://pleasanter.org/binaries/71a27a3fbece460282ab77fff88875b0) ##### JavaScript ```js // 1) 選択肢セット(共通定義) const choiceSets = { G1: [ { key: 1, value: '選択肢1' }, { key: 2, value: '選択肢2' }, { key: 3, value: '選択肢3' }, { key: 4, value: '選択肢4' }, ], G2: [ { key: 2, value: '選択肢2' }, { key: 4, value: '選択肢4' }, ], G3: [ { key: 4, value: '選択肢4' }, { key: 5, value: '選択肢5' }, ], }; // 2) 選択肢セットキー const classAToSetKey = { 1: 'G1', 2: 'G2', 3: 'G3', 4: 'G3', }; // 3) メイン処理 // ClassB の選択肢をクリアしてから、ClassA に応じた選択肢をセット columns.ClassB.ClearChoiceHash(); const setKey = classAToSetKey[model.ClassA]; const choices = setKey && choiceSets[setKey] ? choiceSets[setKey] : []; for (const { key, value } of choices) { columns.ClassB.AddChoiceHash(key, value); } ``` </details> <details> <summary>2. グループ・組織に所属するメンバーを選択肢に設定する</summary> グループ、組織を選択肢として設定しておき、その選択にあわせ所属するメンバーを別の選択肢項目へ設定します。 このサンプルでは、以下のように制御しています。 ・分類A:グループ → 所属メンバーを分類Bに設定 テーブルの設定は以下のとおり 分類A ![image](https://pleasanter.org/binaries/8cb3a172f9684f388d4df831d99d422e) 分類B ![image](https://pleasanter.org/binaries/425caf0841a940d79a041ced9897c2e0) ・分類C:組織 → 所属メンバーを分類Dに設定 テーブルの設定は以下のとおり 分類C ![image](https://pleasanter.org/binaries/fccae7e0fff94b9b9b8aa4c052e6967e) 分類D ![image](https://pleasanter.org/binaries/e0b776befe7d4e04a21b10777e89fd24) ##### JavaScript ```js // グループ所属メンバーを取得して、選択肢にセット 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); } } ``` </details> ## 対応バージョン |対応バージョン|内容| |:--|:--| |1.2.4.0 以降|機能追加| |1.4.23.0 以降|パラメータvalueを省略可能に| ## 関連情報 <div id="ManualList"><ul><li><a href="/ja/manual/table-management-what-is-items">テーブルの管理:項目</a><span>2025/10/24 up</span></li> <li><a href="/ja/manual/table-management-class">テーブルの管理:項目:分類</a><span>2025/12/09 up</span></li></ul></article> <ul><li><a href="/ja/manual/table-management-choices-text">テーブルの管理:エディタ:項目の詳細設定:選択肢一覧</a><span>2025/11/27 up</span></li> <li><a href="/ja/manual/table-management-choices-text-depts">テーブルの管理:エディタ:項目の詳細設定:選択肢一覧:組織</a><span>2023/04/25 up</span></li> <li><a href="/ja/manual/table-management-choices-text-groups">テーブルの管理:エディタ:項目の詳細設定:選択肢一覧:グループ</a><span>2023/04/25 up</span></li> <li><a href="/ja/manual/table-management-choices-text-users">テーブルの管理:エディタ:項目の詳細設定:選択肢一覧:ユーザ</a><span>2023/04/25 up</span></li></ul></article> <ul><li><a href="/ja/manual/table-management-server-script">テーブルの管理:サーバスクリプト</a><span>2026/02/10 up</span></li></ul></article> <ul><li><a href="/ja/manual/server-script">開発者向け機能:サーバスクリプト</a><span>2025/11/27 up</span></li> <li><a href="/ja/manual/server-script-conditions">開発者向け機能:サーバスクリプト:条件</a><span>2026/02/09 up</span></li></ul></article> <ul><li><a href="/ja/manual/faq-condition-mode-range">FAQ:プロセスなどの条件タブで数値や日付の条件を範囲指定したい</a><span>2024/05/29 up</span></li></ul></article></div><input id="SearchTextHidden" type="hidden" value="" />
TOP