グループレベルの例

Magicエンジン > エンジン実行レベル > グループレベル

例えば、[受注]データを基に集計を行うとします。このデータは、「顧客コード」(上位グループレベル)、「受注番号」(中位グループレベル)、「商品コード」(下位グループレベル)でソートされているものとします。つまり、「商品コード」の値が変化すると下位のグループレベルの値が、「受注番号」の値が変化すると中位のグループレベルの値が、「顧客コード」の値が変化すると上位のグループレベルの値がそれぞれ、変化(ブレイク発生)することになります。

この場合、まず、最初のレコードについて、上位のグループレベルから下位のグループレベルまで、各グループレベルの[グループ前]が実行されます。その後、最初の顧客の最初の受注番号の最初の商品の処理が完了すると、「商品コード」の[グループ後](最初のグループレベル)が実行されます。

最初の受注番号に属する全ての商品について処理が終わると、中位のグループレベル(つまり、受注番号)の[グループ後]が実行され、ここで、最初の注文の合計が出力されます。続いて、最初の顧客について「商品コード」と「受注番号」の両方のグループレベルの処理が終わると、次の顧客について[グループ前]が実行されます。

以上のようにしてレコードのチェックが進み、途中、上位のグループレベルの値が変化した場合、そのグループレベルの下位のグループレベルから、値が変化したグループレベルまでの[グループ後]が全て実行されます。その後、再度、次のレコードが処理されることになります。

このようにして、全てのレコードについて処理が完了すると、[タスク後]が実行されます。この処理により、全ての顧客の注文の合計価格が出力されます。

参照