ActiveReports for .NET 18.0J
ページ/RDLレポートの結合
ActiveReportsユーザーガイド > 基本操作 > ページレポート/RDLレポートの基本操作 > 高度なページ形式のレイアウトの作成 > ページ/RDLレポートの結合

ActiveReportsでは、ページレポート、RDLレポートを1つのレポートに結合できます。用紙サイズや向きが異なるレポートの結合、ページレポートとRDLレポートをミックスした結合にも対応しています。

ReportCombinerクラスは、レポートを別のレポートに追加します。レポートは追加した順序で結合されます。

BuildReportメソッドを使うと、PageReportクラスのすべての機能を使用でき、結合する際に、改ページを挿入したり、2つのレポートの間隔を指定したりできます。



(1)3つのレポートを結合する

Visual Basicコード
コードのコピー
Dim combiner = New GrapeCity.ActiveReports.ReportsCore.Tools.ReportCombiner()

' 結合モードを設定します
combiner.Mode = GrapeCity.ActiveReports.ReportsCore.Tools.CombineMode.ReportSections

Dim r1 = New GrapeCity.ActiveReports.PageReport()
r1.Load(New System.IO.FileInfo("c:\temp\Report1.rdlx"))

Dim r2 = New GrapeCity.ActiveReports.PageReport()
r2.Load(New System.IO.FileInfo("c:\temp\Report2.rdlx"))

Dim r3 = New GrapeCity.ActiveReports.PageReport()
r3.Load(New System.IO.FileInfo("c:\temp\Report3.rdlx"))

combiner.AddReport(r1)
combiner.AddReport(r2)
combiner.AddReport(r3)

' PDF描画拡張機能
Dim pdfRe = New GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension()
Dim provider = New GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(New System.IO.DirectoryInfo("c:\temp\"), "CombinedReport")

' 結合したレポートをビューワにロードします
Viewer1.LoadDocument(combiner.BuildReport().Document)

' 結合したレポートをPDF形式で出力します
combiner.BuildReport().Document.Render(pdfRe, provider)
C#コード
コードのコピー
var combiner = new GrapeCity.ActiveReports.ReportsCore.Tools.ReportCombiner();

// 結合モードを設定します
combiner.Mode = CombineMode.ReportSections;

var r1 = new GrapeCity.ActiveReports.PageReport();
r1.Load(new System.IO.FileInfo(@"c:\temp\Report1.rdlx"));

var r2 = new GrapeCity.ActiveReports.PageReport();
r2.Load(new System.IO.FileInfo(@"c:\temp\Report2.rdlx"));

var r3 = new GrapeCity.ActiveReports.PageReport();
r3.Load(new System.IO.FileInfo(@"c:\temp\Report3.rdlx"));

combiner.AddReport(r1);
combiner.AddReport(r2);
combiner.AddReport(r3);

// PDF描画拡張機能
var pdfRe = new GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension();
var provider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(new System.IO.DirectoryInfo(@"c:\temp\"), "CombinedReport");

// 結合したレポートをビューワにロードします
viewer1.LoadDocument(combiner.BuildReport().Document);

// 結合したレポートをPDF形式で出力します
combiner.BuildReport().Document.Render(pdfRe, provider);


(2)指定したインデックスにレポートを追加する

1つ目のレポートの後に、レポート「r4」を追加します。

Visual Basicコード
コードのコピー
combiner.Insert(1, r4, New GrapeCity.ActiveReports.ReportsCore.Tools.LocationOptions())
report = combiner.BuildReport()
C#コード
コードのコピー
combiner.Insert(1, r4, new LocationOptions());
report = combiner.BuildReport();


(3)レポートのリストを追加する

Visual Basicコード
コードのコピー
Dim reports As IEnumerable(Of GrapeCity.ActiveReports.PageReport) = {r1, r2, r3, r4}
combiner.AddRange(reports, New GrapeCity.ActiveReports.ReportsCore.Tools.LocationOptions())
report = combiner.BuildReport()
C#コード
コードのコピー
combiner.AddRange(new PageReport[] {r1, r2, r3, r4 }, new LocationOptions())
report = combiner.BuildReport();


(4)レポートを削除する

1つ目のレポートを削除する

Visual Basicコード
コードのコピー
combiner.RemoveAt(0)
report = combiner.BuildReport()
C#コード
コードのコピー
combiner.RemoveAt(0);
report = combiner.BuildReport();

レポート「r2」を削除する

Visual Basicコード
コードのコピー
combiner.RemoveAll(r2)
report = combiner.BuildReport()
C#コード
コードのコピー
combiner.RemoveAll(r2);
report = combiner.BuildReport();