PowerTools ActiveReports for .NET 9.0J > ActiveReportsユーザーガイド > 概念 > セクションレポートの概念 > データ連結 > データの流れ |
レポートはデータ(レコード)があってはじめて作成できるものです。レポートの生成とは、1件1件レコードを読み込み、次にその中のデータをセクション上にあるレポートコントロールに渡し、最後にそのセクションをメモリ上にある仮想ページ(Pageオブジェクト)に出力するという処理の繰り返しです。すべてのレコードの読み込みが完了すると、レポートの生成が終了します。
ここでの説明は、リレーショナルデータベースおよびADO.NETを用いたデータ接続について基本的な知識があることを前提としています。
以下の図は、ActiveReportsの一般的な手法であるバウンドレポートにおけるデータの流れを示します。
ActiveReportsでは、データクラス内のデータがTextBoxなどのレポートコントロールに直接渡されるのではなく、Fieldオブジェクトを経由して行われます。以下に、図中の丸囲みの数字のタイミングでどのような処理が行われているのかを解説します。
注意: XMLDataSource使用時は、Fieldを使用せずにXMLの各ノードを巡回することによってデータを取得します。このため、他のデータソースと異なり、Fieldオブジェクトは自動生成されません。プログラム内でFieldオブジェクトを参照する場合は、この点に注意してください。
|
ActiveReportsには、上述のバウンドレポート以外にアンバウンドレポートと呼ばれる手法が存在します。アンバウンドレポートとは、データクラスを使用しない(DataSourceプロパティが空である)レポートのことです。アンバウンドレポートのFieldsプロパティは初期状態では空になっています。プログラマは必要な分だけアンバウンドフィールドを作成し、それを介してレポートコントロールにデータを供給します。アンバウンドレポートにはレコードセットがないため、レコードポインタ(現在何件目のデータを処理しているのかという情報)の管理やEOFの判定はFetchDataイベントの中でプログラマが行います。
アンバウンドレポートの作成方法については、アンバウンドデータ サンプル (UnboundData)、および「アンバウンドレポートでのグループ化」を参照してください。