ActiveReports通信

.NET帳票開発ツール ActiveReports の技術情報をお届けします。

ActiveReports これ知ってる?-第6回:複数のレポートを一つのPDFにする方法-

 
今回は複数のレポートを一つのPDFとして出力する方法をご紹介します。
ActiveReportsには、複数のレポートを一つのレポートにする方法がいくつか用意されています。詳しくは以下のナレッジ文書をご覧ください。
セクションレポートの場合、レポートを生成した後でページ単位で結合する方法が使用できるため、結合後のレポートをPDFにエクスポートすれば、一つのPDFとして出力可能です。
 
一方、ページレポート/RDLレポートにはページ単位で結合する方法はなく、レイアウト段階で複数のレイアウトを組み合わせるという手段をとることになります。このため、別々に生成されたレポートを結合することはできません。
 
しかしながら、PDFエクスポートに限っては、エクスポート処理時にレポートを結合する方法が用意されています。
 
具体的な方法としては、描画拡張機能によるエクスポート時にDocumentToAddBeforeReport/DocumentToAddAfterReportプロパティに既存のPDFファイルのパスを指定することでレポートと結合されたファイルを出力することができます。
◆サンプルコード(VB.NET)
Dim settings As New GrapeCity.ActiveReports.Export.Pdf.Page.Settings()
settings.DocumentToAddBeforeReport = "C:\PDF\tmp.pdf"
◆サンプルコード(C#)
var settings = new GrapeCity.ActiveReports.Export.Pdf.Page.Settings();
settings.DocumentToAddBeforeReport = @"C:\PDF\tmp.pdf";
◆参考情報
製品ヘルプ「PDFへの描画」トピック

このプロパティは既存のファイルとの結合を行うためのプロパティですが、ActiveReportsによって出力したファイルを対象とすることも可能ですので、レポートをPDFファイルとして保存し、次々と結合していけば、レポートを結合したPDFファイルが得られます。

なお、どちらの方法でも、用紙サイズや向きが異なるレポートを一つのPDFとして出力できます。大量のレポートを保存する必要がある際は、こちらの方法もぜひご検討ください。

この記事はグレープシティが発行するメールマガジン「ActiveReports通信」の第18号(2017年2月発行)に掲載された記事を、加筆修正して転載したものです。