作成日: 2026/09/24 最終更新日: 2026/10/07
文書種別
制限事項
詳細
GroupFooter が複数ページに分割されるレイアウトにおいて、GroupHeader に配置した ReportInfo コントロールの PageCount が、実際の総ページ数と一致しない場合があることを確認しています。
本現象は、GroupFooter がページをまたいで出力される場合に発生します。
本現象は製品の制限事項となります。
回避方法
現在のレイアウトを維持したまま ReportInfo コントロールで正しい総ページ数を表示する方法はありません。
回避策として、データをグループ単位で分割してレポートを個別に生成し、その後で各レポートのページを結合する方法があります。
本現象は、1つのグループの GroupFooter が複数ページに分割される場合に発生します。
そのため、グループごとに個別のレポートとして生成し、生成後にページを結合することで、本現象を回避できることを確認しております。
なお、本回避方法を適用できるかどうかは帳票レイアウトや業務要件に依存するため、実際の帳票構成に応じてご検討ください。
回避策として、データをグループ単位で分割してレポートを個別に生成し、その後で各レポートのページを結合する方法があります。
本現象は、1つのグループの GroupFooter が複数ページに分割される場合に発生します。
そのため、グループごとに個別のレポートとして生成し、生成後にページを結合することで、本現象を回避できることを確認しております。
なお、本回避方法を適用できるかどうかは帳票レイアウトや業務要件に依存するため、実際の帳票構成に応じてご検討ください。
実装例
以下は、Field1 をグループキーとしてデータを分割し、グループごとにレポートを生成した後にページを結合する実装例です。
Dim rpt = New GrapeCity.ActiveReports.SectionReport()
Dim rptTmp = New GrapeCity.ActiveReports.SectionReport()
For Each group In data.AsEnumerable().GroupBy(Function(r) r.Field(Of String)("Field1"))
Dim dt As DataTable = data.Clone()
For Each row In group
dt.ImportRow(row)
Next
rptTmp.Restart()
rptTmp.DataSource = dt
rptTmp.Run()
rpt.Document.Pages.AddRange(rptTmp.Document.Pages)
Next
Viewer1.Document = rpt.Document
本サンプルでは、Field1 ごとにデータを分割し、それぞれを独立したレポートとして生成しています。
生成したレポートのページを
実際の帳票へ適用する場合は、帳票で使用しているグループキーに合わせてデータの分割方法を変更してください。
生成したレポートのページを
Document.Pages.AddRange メソッドで結合することで、最終的に1つのドキュメントとして出力できます。実際の帳票へ適用する場合は、帳票で使用しているグループキーに合わせてデータの分割方法を変更してください。