作成日: 2026/03/25 最終更新日: 2026/03/25
文書種別
使用方法
詳細
セクションレポートのグループヘッダの場合、RepeatStyleプロパティを"OnPageIncludeNoDetail"などに設定すると、そのグループヘッダは基本的に毎ページに出力されます。
しかしながら、グループフッタにはRepeatStyleプロパティのような機能が用意されておりません。そのため、一つのグループが複数ページに渡った場合にもグループフッタを毎ページに出力する、といった動作には対応しておりません。
グループフッタそのものではなく、グループ単位のページ数や集計値のような、「グループフッタに出力する情報」をページの下部に出力する方法としては、『グループヘッダ上に出力したデータを、ページフッタ上に読み込む方法』が考えられます。詳しくは、以下の内容をご覧ください。
毎ページの下部に出力されるセクションはページフッタのみですので、これを利用します。ただし、ページフッタ上にはデータとバインドしたコントロールを配置できませんので、コード上でデータをセットします。
※この方法は、イベントの発生順序を利用した方法なので、レポートの構成によっては適用できない場合があります。また、グループヘッダを毎ページに出力するために、グループヘッダのRepeatStyleプロパティを"OnPageIncludeNoDetail"に設定する必要があります。
具体的には、以下のような手順になります。
-
ページフッタ上にReportInfoコントロールを1つ配置し、以下のようにプロパティを設定します。
FormatStringプロパティ {PageCount} Visibleプロパティ False ※このコントロールは、ページフッタのBeforePrintイベントを最後に発生させるためのコントロールであり、レポート上には出力する必要はありません。
- グループヘッダ上に、出力したいフィールドにバインドしたTextBoxコントロール(TextBox1)を配置します。VisibleプロパティはFalseに設定し、表示されないようにしておきます。
※グループヘッダ/フッタ上に配置できるコントロールは、そのグループ内で変化しないデータ(グループ化のキーとなる値)にバインドされたものか、Summary***プロパティを使用してグループ単位の集計を行うコントロールのみです。レコード単位で変化するデータをバインドさせた場合、ページヘッダ/フッタセクションと同様、予想と異なる結果になることがあります。
- ページフッタ上にTextBoxコントロール(TextBox2)を配置します。
-
グループヘッダ上に出力されたデータを、配列変数に保存し、ページフッタ上のTextBoxにセットするコードをそれぞれのセクションのBeforePrintイベントに追加します。
◆サンプルコード (C#)string[] Data1 = new string[100]; int i = 0; int j = 0; private void groupHeader1_BeforePrint(object sender, EventArgs e) { // データを配列変数に保存します。 Data1[i] = this.textBox1.Text; i += 1; } private void pageFooter_BeforePrint(object sender, EventArgs e) { // 保存したデータをTextBoxにセットします。 this.textBox2.Text = Data1[j]; j += 1; }◆サンプルコード (VB.NET)
Private Data1(100) As String Private i As Integer = 0 Private j As Integer = 0 Private Sub GroupHeader1_BeforePrint(sender As Object, e As EventArgs) _ Handles GroupHeader1.BeforePrint ' データを配列変数に保存します。 Data1(i) = Me.TextBox1.Text i += 1 End Sub Private Sub PageFooter_BeforePrint(sender As Object, e As EventArgs) _ Handles PageFooter.BeforePrint ' 保存したデータをTextBoxにセットします。 Me.TextBox2.Text = Data1(j) j += 1 End Sub