ブログ

2024/08/19
【プリザンター】 第260回)複数の項目をまとめて1つの項目にルックアップする方法

分類項目以外のルックアップをもっと便利に!

こんにちは、シーイーシーカスタマサービスの森山です。

プリザンタ―でつい使ってしまう項目といえば「分類項目」ではないでしょうか?
「分類項目」はフリーテキスト形式の「入力項目」だけでなく、「選択肢一覧」に直接設定した値での選択形式、同じ選択形式でも「リンク」の設定を行うことで他のテーブルをマスタテーブルとして「選択肢一覧」を表示することができ、とても使い勝手の良い項目です。

ただ、使い勝手が良いだけに、分類項目の数が足りなくなってしまう……なんてことはありませんか?
マスタテーブルでは1つずつ項目が分かれていても、入力テーブルでは1項目にまとまって表示されても問題ないというデータも少なくありません。

例えば、「商品マスタテーブル」の商品番号をキーとし、価格や仕様、大きさ等の商品情報は「入力テーブル」では参考情報としての記載で問題がなく、1つの項目にまとめてしまった方が良い場合があります。

そういった「まとめて良いデータ」をまとめてしまうことで、分類項目の利用を減らすことが可能です。

過去「分類項目以外でルックアップを実現する方法」をご紹介しましたが、今回は 数値項目 を使い、さらに、リンクするテーブルの複数の項目をまとめて1つの 説明項目 にルックアップする方法をご紹介します。

複数の項目の値を1つにまとめてルックアップする

今回説明に使用するテーブル、設定内容は以下の通りです。

■テーブルA=マスタテーブル(サイトID:12345)
・分類A~Dを表示

■テーブルB=入力テーブル
・数値A、説明Aを表示
・数値Aは「自動ポストバック」にチェックを入れ、「自動ポストバック時に返却する項目」に「DescriptionA」(説明A)を設定

■設定内容
・テーブルBの数値Aの値 と テーブルAの分類Aの値 が一致した場合、テーブルBの説明A に テーブルAの分類B~Dの値 を改行して記載する

この設定内容を実現するために、サーバスクリプトを設定します。条件は「計算式の前」を設定してください。

// parentSite に テーブルAのサイトID を設定
function getFilteredData(tranNum) {
let parentSite = 12345;
let data = {
"View": {
"ColumnFilterHash": {
"ClassA": `${tranNum}`
},
"ColumnFilterSearchTypes": {
"ClassA": "ExactMatch"
}
}
};
return Array.from(items.Get(parentSite, JSON.stringify(data)));
}

function setDescription(numA, results) {
if (numA) {
if (results.length) {
return `${results[0].ClassB}\n${results[0].ClassC}\n${results[0].ClassD}`;
} else {
return "該当なし"; // 結果がない場合"該当なし"を表示
}
} else {
return ""; // NumAが空の場合は空にする
}
}

// テーブルAのレコード情報を取得
let results = getFilteredData(model.NumA);

// 説明Aに該当レコードの分類B~Dを設定
model.DescriptionA = setDescription(model.NumA, results);
設定が完了したら、実際の動きを確認してみましょう。
テーブルAにデータを登録します。


テーブルBの数値Aに入力し、カーソルを移動します。



説明Aに、テーブルAの分類B~Dが改行された状態で記載されました!

※ ポイント ※
「ColumnFilterSearchTypes」を設定し、検索方法に "ExactMatch"(完全一致) を指定します。
完全一致を指定しない場合、数値Aに 1 と 100 を入力した場合、本来であれば異なる結果となるはずですが、同じ結果が返されてしまいますのでご注意ください。

"ExactMatch"(完全一致) を設定していない場合


"ExactMatch"(完全一致) を設定した場合

まとめ

いかがでしたか?

よく使う項目は状況や環境によって異なりますが、ご紹介した設定をお使いいただくことでより利用の幅が広がると思います。
ご紹介した内容について、お使いの環境にあわせてカスタマイズいただき、是非お試しください!

弊社ではプリザンターをご使用中、または、これからご使用になられる方向けに、運用ノウハウ集、プリザンター逆引き辞典、スタイル・スクリプトサンプル集、サーバスクリプト大全の販売を行っております。
また、 プリザンターからのExcel帳票出力・PDF帳票出力の支援パック販売 も行っております。
プリザンター導入の支援や、スクリプト開発などの支援も行っておりますので、まずは気軽にご相談ください。
※ご相談の内容によっては有料となる場合がございます。予めご了承ください。
☆☆☆
ブログ内容への質問や追加説明をご希望の方は【 問い合わせフォーム 】からお気軽にお問い合わせください
☆☆☆

PAGE TOP