本記事ではViewFramerのグループ機能について説明します。
グループ機能とは、集計関数を用いる際にどの項目でレコードをグルーピングするか決められる機能です。
例として、以下の見積書を見てみましょう。
このような見積商品を含む見積オブジェクトから帳票出力すると、
このような見積書が出力されます。
「製品2」、「製品3」については重複した名前のレコードがあり、見づらいものとなっています。
そこでViewFramerのグル-プ機能を用いると、、、
同じ名前の製品についてまとまり、見やすいものになりました。
グループ機能を使う前後での違いは以下2点です。
- ヘッダー部分に明細レコードの種類(今回は製品名)の数を表示した
- 明細の数量、金額項目については同じ名前の製品名の値を足し合わせたものを表示するようにした
グループ機能を使って、このようにレコードをまとめる方法を説明していきます。
1. ビュー出力項目設定の「グループ」欄
このグループ欄には1以上の数値を入力できます。
数値の小さいものから順にグルーピングの優先順位が振られます。
※このあとの手順はあくまでも一例です。グループ機能を使う際の参考事例としてお読みください。
ヘッダービューの設定
見積IDが同じものについて製品数を数えるので、「見積商品.見積」のグループ欄に1を入力します。
明細ビューの設定
製品名が同じものについて項目の合計を求めるので、「見積商品.見積商品名」のグループ欄に1を入力します。
2. 集計関数
グルーピングの対象について特定の値を返します。
ヘッダービューの設定
明細レコードの種類(製品名)数を表示したいので、COUNT_DISTINCT関数を使います。
見積IDでグルーピングし、製品名の総数について重複を認めずに数えます。
明細ビューの設定
製品名が同じものについて数量と金額の合計を求めたいので、SUM関数を使います。
このようにビューのグループ欄と出力項目を設定すれば、データのまとまった見やすい見積書が出力できます。