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