これらの処理、すなわち上の図のように「商品別売上」テーブルの「氏名」項目と「商品名」項目でグループ化し「売上個数」項目でクロス集計を行うには、次のように操作します。
!!Main
Goro.OpenTable("商品別売上", , 1) !!(1)
%Grouping = {.Key = {{.Field = "氏名"}, {.Field = "商品名"}}} !!(2)
%Standard = {.Intersection = {{.ValueField = "売上個数"}}, .ReferenceName = "クロス集計結果表"}!!(3)
%Extension = {.DisplayField = {"担当合計"}, .RowTotal = {{.DisplayField = "担当合計", .Type = 5}},.ColumnTotal = {{.ValueRow = 1, .Type = 5}},.GrandTotal = {{.DisplayField = "担当合計", .Type = 5}}} !!(4)
Goro.CrossTab(1, , %Grouping, %Standard, %Extension) !!(5)
(1)
Goro.OpenTable("商品別売上", , 1)
「商品別売上」テーブルを一覧表示形式(ViewStyle = 1)で開きます。
(2)
%Grouping = {.Key = {{.Field = "氏名"}, {.Field = "商品名"}}}
集計時におけるグループキーを、項目「氏名」と項目「商品名」として配列で指定します。
(3)
%Standard = {.Intersection = {{.ValueField = "売上個数"}}, .ReferenceName = "クロス集計結果表"}
基本クロス集計の方法を配列で指定します。ここでは、項目「売上個数」を指定します。また、クロス集計された結果表に与える参照名として「クロス集計結果」を指定します。
(4)
%Extension = {.DisplayField = {"担当合計"}, .RowTotal = {{.DisplayField = "担当合計", .Type = 5}},.ColumnTotal = {{.ValueRow = 1, .Type = 5}},.GrandTotal = {{.DisplayField = "担当合計", .Type = 5}}}
拡張クロス集計の方法を配列で指定します。行集計の格納場所として「担当合計」を、行集計の格納場所として「担当合計」を集計種別「合計」として指定します。また、列集計の方法について、集計種別「合計」、集計対象の行番号を「1」として指定します。最後に、総計の格納場所として「担当合計」を、集計種別「合計」にて指定します。
(5)
Goro.CrossTab(1, , %Grouping, %Standard, %Extension)
カレント表「商品別売上」について、それぞれの条件を格納した変数「%Grouping」、変数「%Standard」、変数「%Extension」をもって、クロス集計を実行します。クロス集計された結果は、直ちにカレント表に反映されます。
マクロ簡易作成機能を使えば、マクロのコードを記述せずに条件にあった絞り込みをマクロ化できます。
(1)動作一覧(L)
表→表を開く
(2)「表を開く」の設定(P)
表名:商品別売上
(3)動作一覧(L)
データ→クロス集計
(4)「クロス集計」の設定(P)
設定/解除:設定
条件 :クロス集計_売上個数
マクロ簡易作成機能で作成されたマクロを JustBuilderへ(J) にてコード変換すると、次のようになります。
!! 表を開く
%表ID_01 = Goro.OpenTable("商品別売上")
!! クロス集計
Goro.CrossTab( 1, "クロス集計_売上個数")