3つの方法をご紹介
今回は3つの方法をご紹介します。
前提として、以下のようなデータが登録されたテーブルA(サイトID:12345)があるとします。


このテーブルの各レコードに登録された値を、テーブルB(入力テーブル)の分類項目に選択肢として表示してみます。
👉方法1:テーブル間に親子関係を設定する(リンク)
分類項目の選択肢一覧に、テーブルAのサイトIDを角括弧で二重に囲んで記入します。


この方法では、テーブルAで管理しているレコードのタイトルを選択肢として表示できます。
ただし、タイトル以外の値は選択肢として表示できません。


【詳細はユーザーマニュアルをご確認ください】
🔍テーブルの管理:エディタ:項目の詳細設定:選択肢一覧:リンク
👉方法2:テーブル間に親子関係を設定し(リンク)、選択肢一覧をJSON形式で記述する
テーブルBの分類項目の選択肢一覧に、以下のように JSON形式で記述します。
[
{
"SiteId": 12345,
"View": {
"ColumnSorterHash": {
"ClassA": "asc"
}
},
"SearchFormat": "[ClassA]・[ClassB]",
}
]ただしこの方法は「検索機能を使う」へのチェックが必須ですので、検索ダイアログでの選択肢表示となります。
また、あくまで選択肢の表示内容を書き換えているだけですので、実際にレコードに登録される値は選択肢と異なる値となる場合があります。
(今回の例では、実際にはテーブルAのタイトル項目の値が登録されます)


【詳細はユーザーマニュアルをご確認ください】
🔍テーブルの管理:エディタ:項目の詳細設定:選択肢一覧:フィルタ、ソート、表示フォーマット
👉方法3:サーバスクリプトで設定する
「columnsオブジェクト」の「AddChoiceHashメソッド」を使うことで選択肢一覧を動的に設定できます。
テーブルBのサーバスクリプトに、出力先 「画面表示の前」 を指定し登録します。
let data = {
"View": {
"ColumnSorterHash":{
"ClassA":"asc" // 昇順でソート
}
}
};
let results = items.Get(12345, JSON.stringify(data)); // items.GetでテーブルAのデータを取得
for (let item of results) {
// 選択肢を作成
columns.ClassC.AddChoiceHash(`${item.ClassA}`, `${item.ClassA}` + `・` + `${item.ClassB}`);
}JSON形式での記述と異なり、ドロップダウンリストで選択肢が表示されます。
また、登録される値も選択肢そのままの値を登録することが可能です。


【詳細はユーザーマニュアルをご確認ください】
🔍開発者向け機能:サーバスクリプト:columns.AddChoiceHash
まとめ
それぞれの方法の特徴・メリット・注意点をまとめました。
ご紹介した3つの方法には、それぞれに良さと工夫のポイントがあります。
ぜひ試しながら、自分の環境にぴったりの選択肢設定を見つけてみてください。


弊社では、プリザンター導入・活用に関して以下のサービスをご提供しています。
・年間サポート
・各種書籍
・帳票出力(Excel/PDF)支援パック
プリザンターの導入から開発・運用をあらゆる角度から全力サポートいたします。
ぜひお気軽にご相談ください!
☆☆☆
サービスの説明などをご希望の方は【 問い合わせフォーム 】よりお気軽にお問い合わせください。
☆☆☆

MAIL


別テーブルの値を選択肢とする方法はいくつかあります
こんにちは、シーイーシーカスタマサービスの新村です。
プリザンターを使っていると、「分類項目に別テーブルの値を選択肢として設定できたら便利だな」と感じる場面はよくあります。
マスターテーブルに登録したレコードを選択肢として利用できれば、データの整合性も保ちやすく、日々の運用もぐっとスムーズになります。
ただ、プリザンターでその実現にはいくつか方法があるため、思った通りの挙動にならずに戸惑うこともあるかもしれません。
そこで今回は、分類項目に別テーブルの値を選択肢として表示する方法をいくつか取り上げて、実際の動きやポイントをわかりやすくご紹介します。