ブログ

2021/06/02
【プリザンター】 第98回)サーバスクリプト#7 条件付き数値出力

テーブル情報を一定の条件で抽出して数値出力

こんにちは、CCSの田中です。

まだまだサーバスクリプトについて勉強中な今日この頃です。
今回は、テーブルから条件で抽出してきたものに対して、数値出力をするサンプルを紹介します。

国語、算数、社会の各教科のテストの結果を保存するテーブルを作成し、このテーブルに「氏名とチーム名、各教科の点数」を登録します。
次に、集計テーブルとして、各チームごとに「各教科の最高点、最低点、平均点」を保存するテーブルを作成します。

集計テーブルで選択したチームの各教科の最高点、最低点、平均点を1レコードとして作成されるようになります。あまり現実的な例ではないかもしれませんが、サンプルとしてはわかりやすいと思いますので、参考にしてください。

具体的なスクリプトについては次で説明します。

条件付き数値出力サーバスクリプト

テスト結果のテーブルには、「分類A」を使用してチーム名の選択肢を登録しておき、同様の内容を「分類A」として集計テーブルにも登録しておきます。

テスト結果テーブルには、国語の点数を「数値A」、算数の点数を「数値B」、社会の点数を「数値C」に登録します。集計テーブルには、国語の最高点、最低点、平均点をそれぞれ、「数値A」「数値B」「数値C」とし、算数、社会においても、「数値D」「数値E」「数値F」、「数値G」「数値H」「数値I」としておきます。

ここまで準備ができたら、適当にテスト結果テーブルに情報を登録しましょう。

さて、ここで以下のサーバスクリプトを登録しましょう。条件は「作成前」と「更新前」にチェックを入れておいてください。
ColumnFilterHashで、集計テーブルで指定したチーム名で、テスト結果テーブルの情報をチーム名でフィルタしてデータを抽出するようになり、items.Maxやitems.Min、items.Averageで数値出力するようになります。なお、以下の19508部分は、テスト結果テーブルのSiteIDとなっていますので、実際のテーブルのSiteIDに合わせて修正してください。

<スクリプト>



try {
context.Log('結果記録テーブルのデータ取得');
let team = model.ClassA;

//国語の点数
model.NumA = items.Max(19508, 'NumA', '{"View":{"ColumnFilterHash":{"ClassA":"[' + team + ']"}}}');
model.NumB = items.Min(19508, 'NumA', '{"View":{"ColumnFilterHash":{"ClassA":"[' + team + ']"}}}');
model.NumC = items.Average(19508, 'NumA', '{"View":{"ColumnFilterHash":{"ClassA":"[' + team + ']"}}}');

//算数の点数
model.NumD = items.Max(19508, 'NumB', '{"View":{"ColumnFilterHash":{"ClassA":"[' + team + ']"}}}');
model.NumE = items.Min(19508, 'NumB', '{"View":{"ColumnFilterHash":{"ClassA":"[' + team + ']"}}}');
model.NumF = items.Average(19508, 'NumB', '{"View":{"ColumnFilterHash":{"ClassA":"[' + team + ']"}}}');

//社会の点数
model.NumG = items.Max(19508, 'NumC', '{"View":{"ColumnFilterHash":{"ClassA":"[' + team + ']"}}}');
model.NumH = items.Min(19508, 'NumC', '{"View":{"ColumnFilterHash":{"ClassA":"[' + team + ']"}}}');
model.NumI = items.Average(19508, 'NumC', '{"View":{"ColumnFilterHash":{"ClassA":"[' + team + ']"}}}')

} catch (e){
context.Log(e.stack);
}

まとめ

さて、いかがでしたか?

今回、条件付きで数値出力を行うサーバスクリプト紹介しました。
今回のサンプルがそのまま業務に使うことはできないかと思いますが、サンプルとして参考になればと思います。

導入の支援、スクリプト開発などでお困りの場合は、当社で支援もいたします。プリザンター逆引き辞典PDF版やスタイル・スクリプトサンプル集PDF版の販売もしております!

☆☆ブログ内容への質問や追加説明をご希望の方は
【問い合わせフォーム】 こちら からお気軽にお問い合わせください☆☆

PAGE TOP