テーブルを親子にリンクさせたレポート(グループ化した集計表)

 XCuteでは、最大20個のテーブルを親子孫と任意にリンクさせたレポートを作成することができ、複雑なレポートの作成を可能とします。下記はその1例で、支社毎、営業員毎、区分毎と階層化(グルーピング)した売り上げの集計表で、3つのテーブル(SQL文)を親子孫とリンクしてグループ化された集計表を作成しています。


 上記は、親(SQL_1)は営業所の一覧表で、子(SQL_2)は支社とその営業員の一覧表で、孫(SQL_3)は支社、営業員、区分毎の売り上げの一覧表で、これらをツリー構造に表示させたものです。
テーブルを親子でリンクするには、親と子でひな型の同じセル位置を指定し、子のリンク欄をYes とします。

 ひな型の構造も、親テーブル1レコードの読み書きの範囲(黄色)は子(水色)を含む形で、子(水色)は孫(白色)を含む形で定義されます。これらの構造は、入れ子と称され、箱の中に小箱を入れた重箱の構造となります。この入れ子構造のひな型が、WriteReportされると、行がコピーされデータベースのレコードが貼り付きます。

 また、XCuteでは、リンクされたテーブルはインデントされ、入れ子構造として表示されます。

 このように、親子構造が定義されると、子テーブルは、リンクYESの親テーブルの列の値で絞り込まれ書き出されますが、XCuteの性質上、SQL文の左結合(Left Join 子レコードが無くても親があれば子が空のまま表示)と同じものとなります。

 XCuteのリンクは、レポート作成を、親子孫とインデントさせさまざまな集計を可能とするもので、SQL文の結合を代用するものではありません。SQL文の結合処理は極めて高速ですが、XCuteのリンクの書き出しは低速です。