ActiveReports学習2

前回までは、ActiveReportsの特徴やレポートの種類について学習しました。

今回からは構造について学習していきたいと思います。

1. セクションレポートの構造


セクションレポートは、デフォルトとしてPageHeader、DetailおよびPageFooterから構成されています。

レポートを右クリックし、コンテキストメニューにある[挿入]オプションを選択し、[レポートヘッダ/フッタ]または[グループヘッダ/フッタ]セクションのペアを追加できます。


Detailセクション以外のすべてのセクションは、Detailセクションの上下にペアとして挿入されます。

VisibleプロパティをFalseに設定することで、使用していないセクションを非表示にすることができます。

ActiveReportsのセクションには次の種類があります。

2. レポートヘッダ(ReportHeader)

1つのレポートには1つのレポートヘッダセクションを作成できます。

このセクションはレポートの先頭に出力されます。

通常ここにはレポートのタイトルやデータの集計結果、またはグラフといった、レポートの先頭に一度だけ表示する必要のある情報を出力します。

このセクションにあるNewPageプロパティを使用し、セクションの印刷前に新しいページを挿入するか、印刷後に挿入するか、または印刷前と印刷後の両方に挿入できます。


レポートヘッダは、デフォルトではセクションレポート上に表示されません。

このセクションを追加するには、レポートを右クリックし、コンテキストメニューから[挿入]を選択して[レポートヘッダ/フッタ]を選択します。

3. ページヘッダ(PageHeader)


1つのレポートには1つのページヘッダセクションを作成できます。

このセクションは各ページの先頭に出力されます。

レポートヘッダセクションを含むページを除き、このセクションがページの先頭に出力されるセクションです。

ここにはカラムヘッダやページ番号、またはページタイトルといった、レポート内の各ページの先頭に表示する必要のある情報を出力します。

4. グループヘッダ(GroupHeader)

1つのレポートには1つまたは複数のネストされたグループを作成できます。

各グループは独自のヘッダセクションとフッタセクションを持ちます。

ヘッダセクションは、詳細セクションの直前に挿入、出力されます。

グループ化の詳細については、セクションレポートでデータのグループ化を参照してください。


カラム形式のレポートでは、ColumnGroupKeepTogetherプロパティを使用し、グループを同じカラムの1つのブロックとして印刷するかどうかを指定できます。

NewPageプロパティを使用し、セクションの印刷前に新しいページを挿入するか、印刷後に挿入するかを選択できます。

RepeatStyleプロパティを使用し、ページ毎にグループヘッダを出力するかどうかを選択できます。

UnderlayNextプロパティを使用し、グループヘッダの情報をグループの詳細行に表示するには、詳細セクションのBackColorプロパティを「Transparent」に設定する必要があります。


実際にグループヘッダが印刷の肝になると思われます。

小計やフラグをたてて印刷物をより細かく作成することができます。

私も開発の現場ではグループヘッダに一番力をいれました。

5. Detail

1つのレポートには1つの詳細セクションを作成することができます。

詳細セクションはレポートの本文であり、レポート内のレコードにつき詳細セクションのインスタンスが1つずつ作成されます。

CanShrinkプロパティをTrueに設定し、コントロールの最後にある空白を調整して、またColumnCount、ColumnDirection、ColumnSpacingおよびNewColumnプロパティを使用してカラム形式のレポートを設定できます。


CanShrink

セクション内のコントロールの高さの正確な合計に合わせて、セクションの高さを調整するかどうかを示します。


CanShrink

セクション内のコントロールの高さの正確な合計に合わせて、セクションの高さを調整するかどうかを示します。


ColumnCount

レポートの段組みの段数を指定する値を取得または設定します。
プロパティを使用すると、ラベルや電話帳形式のリストを印刷できます。
各カラムの幅は、レポートのPrintWidth(レポートの印刷可能な幅を設定)を段数で割った値になります。
印刷幅を設定するときに、余白の幅を考慮していないと、レポートの幅が用紙サイズより大きくなる可能性があります。
この場合、レポートの各ページの後に、ページの右端に垂直の赤い点線のある空のページが印刷されます。


ColumnSpacing

マルチカラムレポートのカラム間のスペースを取得または設定します。


KeepTogether

プロパティを使用し、セクションを1ページ内に収めて印刷できます。
また、RepeatToFillプロパティは、Detailセクションに出力するデータが少なく1ページに満たない場合、ページ全体が満たされるまで、空行を繰り返し出力します。
このプロパティは、罫線や背景色などの書式を各ページで統一するような請求書などのレポートの場合に特に便利です。

6. グループフッタ(GroupFooter)

1つのレポートには1つまたは複数のネストされたグループを作成できます。

各グループは独自のヘッダセクションとフッタセクションを持ちます。

フッタセクションは、Detailセクションの直後に挿入、出力されます。

6-1. セクションレポートでデータのグループ化

ActiveReportsでは、レポート内にグループヘッダとグループフッタを追加し、データをグループ化できます。

グループヘッダは、Detailセクションの直前、またグループフッタは、Detailセクションの直後に挿入されます。


グループヘッダとグループフッタのプロパティは、それぞれのプロパティ設定ダイアログから設定できます。

以下では、それぞれのダイアログで設定できるプロパティについて説明します。

なお、[GroupHeader]ダイアログで表示される各オプションは、[プロパティ]ウインドウからも設定できます。

プロパティに直接アクセスするには、セクションを選択し、[プロパティ]ウインドウを開きます。

6-2. [GroupHeader]ダイアログ

[GroupHeader]ダイアログにアクセスするには、グループヘッダをクリックして選択し、[プロパティ]ウインドウの下部にあるコマンドのセクションから[プロパティ設定ダイアログ]リンクをクリックします。

6-3. [GroupFooter]ダイアログ

[GroupFooter]ダイアログにアクセスするには、グループフッタをクリックして選択し、[プロパティ]ウインドウの下部にあるコマンドのセクションから[プロパティ設定ダイアログ]リンクをクリックします。


レポートを実行すると、グループヘッダ 、Detailセクション、グループフッタの順序にレポートが描画されます。

グループ化するフィールドの各インスタンスに対して、新しいグループヘッダのセクションが描画されます。

グループヘッダにあるコントロールは、グループの各インスタンスに対して1回だけ描画されるので、Detailフィールドのデータを説明するために、このセクションに列ヘッダのラベルを追加します。

6-4. 複数のグループ化

セクションレポートでは、グループヘッダとグループフッタをネストして、異なるフィールドでグループ化できます。

1つのレポート内に、32個までのネストされたグループを配置できます。

複数のグループが追加されているレポートを実行すると、各セクションは以下の順序に印刷されます。


印刷の画面を作る際にこの順番で設定することになります。


ReportHeader1:レポートの先頭に1回だけ印刷されます。

PageHeader1:レポートの各ページの先頭に1回ずつ印刷されます。

GroupHeader1:DataFieldプロパティが返す最初の値に基づいて印刷されます。

Detail1:GroupHeader3のDataFieldに指定した値に基づいて、各レコードに対して1回ずつ印刷されます

GroupFooter1:GroupFooter2が終了した後で、1回ずつ印刷されます。

GroupHeader1:DataFieldによって返される2番目の値に対して一回印刷され、その後、GroupHeader2が印刷され、上記のような手順を繰り返します。

ReportFooter1:レポートの末尾に1回だけ印刷されます。

PageFooter1:各ページの下部に1回ずつ印刷されます。グループ内にPageFooterの位置が変更されます。


挿入するグループの順序は変更することができます。

レポートに1つ以上のグループがある場合、デザイナ面を右クリックし、コンテキストメニューから[グループ順]を選択します。

[グループ順]ダイアログでは、グループをドラッグして順序を変更できます。

ActiveReportsのツールバーにある[グループ順]ボタンでも、グループの順序を変更できます

6-5. ページフッタ(PageFooter)

1つのレポートには1つのページフッタセクションを作成できます。

このセクションは各ページの末尾に出力されます。

出力ページ総数やページ番号といった各ページの末尾に表示する必要のある情報を出力します。

6-6. レポートフッタ(ReportFooter)

1つのレポートには1つのレポートフッタセクションを作成できます。

このセクションはレポートの最終ページの末尾(最終ページのページフッダの前)に出力されます。

ここにはデータの集計結果や総計といった、レポートの最後に一度だけ表示する必要がある情報を出力します。


レポートフッタは、デフォルトではセクションレポート上に表示されません。

このセクションを追加するには、レポートを右クリックし、コンテキストメニューから[挿入]を選択して[レポートヘッダ/フッタ]を選択します。