PowerTools ActiveReports for .NET 9.0J > ActiveReportsユーザーガイド > 概念 > セクションレポートの概念 > レポートの実行 |
ActiveReportsのレポートの実行は、ReportStartイベントの発生によって開始します。この時点で、データソースのプロパティにアクセスすると、DataInitializeイベントが発生します。レポートは、ReportStart内でレポート構造に加えられた変更を確認します。
次にプリンタ設定が適用されます。
そして、DataInitializeイベントがReportStartイベントの最中に発生しなかった場合、DataInitializeイベントが発生します。データソースが開かれます。データソースに未設定の値を含むパラメータがあり、そして ShowParameterUIプロパティがTrueに設定されている場合、ActiveReportsはパラメータダイアログを表示し、ダイアログが閉じるときにParameterUIClosedイベントを発生させます。レポートがサブレポートで、パラメータが必要な場合、ActiveReportsはサブレポートのパラメータを親レポートの任意のフィールドにバインドします。
次にFetchDataイベントが発生します。データがない場合は、NoDataイベントが発生します。
注意: FieldCollectionの参照は、DataInitializeイベント、またはFetchDataイベントで行うようにしてください。
|
グループセクションがバインドされ、セクションはページへの描画を開始します。
レポートヘッダ、レポート内の各ページのページヘッダ、グループ、詳細、ページフッタを処理するイベントが順に発生します。各イベントの後にキャンセルフラグがONになります。
ActiveReportsの高速な処理および出力生成は、知性的なマルチスレッド、かつシングルパスの処理によって実現されています。ActiveReportsは、準備ができたページからただちに処理および描画を行います。データ要素の一部が認識できない、レイアウトが完成していないなどの理由でActiveReportsがページの描画を完了できない場合は、必要なデータが揃うまで、このページはActiveReportsの内部のキャッシュに格納されます。
ページが完全に描画されない場合は、集計用テキストボックスとKeepTogetherプロパティの値による制約が原因です。集計用テキストボックスは、集計に必要な全データがデータソースから読み込まれるまで描画が完了しません。総計などの集計用テキストボックスが、レポートヘッダ内など、その完了レベルより前に置かれている場合は、全データが読み込まれるまで、レポートヘッダセクションおよびそれ以降の全セクションの描画は遅延されます。
KeepTogetherプロパティは、1つのセクションを1ページ内に収めて出力するかどうかを定義します。Trueに設定すると、セクションがそのページに収まりきらない場合、セクションの開始が次ページに繰り越され、セクション内に改ページが入らないようにします。Falseに設定すると、セクションを複数ページに分割して出力することができます。KeepTogetherがTrueに設定されていても、セクションが現在のページに対して大き過ぎる場合や、次のページに完全に合わせる場合は、KeepTogetherプロパティは無視されます。
GroupKeepTogetherプロパティは、グループヘッダセクションおよびグループフッタセクションを1つのブロックとして1ページ内に収めて出力するかどうかを定義します。デフォルトはNoneです。グループブロックは複数のページに分割して出力できます。Allに設定すると、できるだけブロック全体を1ページ内に収めて出力し、改ページが入らないように処理されます。ブロックが1ページ内に収まりきらない場合は、複数のページに分割されます。FirstDetailに設定すると、グループヘッダが孤立して出力されないようになります。グループヘッダは少なくとも1つの詳細セクションと共に出力されます。