CodeZine(コードジン)

特集ページ一覧

5分でわかるActiveReports帳票(2013年度版)-Webアプリケーションとエクスポート

ActiveReports for .NET 7.0Jで作るサンプル帳票(8)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
目次

エクスポートの結果を配信するWebアプリケーション

 これまでに説明したサンプルコードでは、レポートをファイルとして出力しておりましたが、エクスポートを行うメソッド(ExportやRenderメソッド)は、レポートをファイルだけではなく、ストリームへ出力することも可能です。

 エクスポートで得られたデータをMemoryStreamに保存すれば、そのデータをクライアント側に配信してブラウザに表示できます。この方法を用いることで、StandardエディションでもWebアプリケーションを構成できます。手順は以下のとおりです。

  1. MemoryStreamを生成する。
  2. レポートを生成する。
  3. レポートをエクスポートしてMemoryStreamに格納する。
  4. WebアプリケーションのResponseオブジェクトの機能を利用してクライアントに配信する。

 セクションレポートをPDFの形式で配信するコードは、以下のようになります。WebページのPage.Loadイベントや、ボタンのButton.Clickイベント等に記述します。

PDF形式でエクスポートしたファイルをクライアントに配信する処理(VB.NET)
Dim m_stream As New System.IO.MemoryStream()
Dim rpt As New SectionReportSample
rpt.Run()
Dim PdfExport1 As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
PdfExport1.Export(rpt.Document, m_stream)
m_stream.Position = 0
Response.ContentType = "application/pdf"
Response.AddHeader("content-disposition", "inline;filename=MyExport.pdf")
Response.BinaryWrite(m_stream.ToArray())
Response.End()
PDF形式でエクスポートしたファイルをクライアントに配信する処理(C#)
System.IO.MemoryStream m_stream = new System.IO.MemoryStream();
GrapeCity.ActiveReports.SectionReport rpt = new SectionReportSample();
rpt.Run();
GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport pdfExport1 =
    new GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport();
pdfExport1.Export(rpt.Document, m_stream);
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "inline;filename=ExportSample.pdf");
Response.BinaryWrite(m_stream.ToArray());
Response.End();

 この処理を実行すると、Internet Explorerなどのブラウザ上にPDFが表示されます。上記の処理はセクションレポートを使っていますが、ページレポートでも基本的には同様です。

 なお、上記のコードの後半部分にあるResponseを使った処理は、ActiveReportsとは直接関係はありません。例えば、サーバー上に配置されたPDFファイルについてもその内容をMemoryStreamへ格納すれば、同様の方法でクライアントに配信できます。

 "Content-Disposition"などの書式は、RFC2183などで規定されているのでそちらを参考にしてください。

 「ブラウザ内で表示するのではなく、クライアントにダウンロードしてから表示する」場合には、Response.AddHeaderメソッドに指定する文字列の中で、inlineのかわりにattachmentと記述します。

エクスポートしたファイルを配信する処理(ファイルをダウンロードする)(VB.NET)
Response.AddHeader("content-disposition", "attachment;filename=ExportSample.pdf")
エクスポートしたファイルを配信する処理(ファイルをダウンロードする)(C#)
Response.AddHeader("content-disposition","attachment;filename=ExportSample.pdf");

 また、Excelファイルを配信する場合は、ContentTypeを"application/vnd.ms-excel"(.xls)もしくは"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"(.xlsx)とします。ContentTypeはMIMEタイプに準ずるものなので、各ファイル形式に適合するMIMEタイプを設定してください。

まとめ

 今回はActiveReportsを使ったWebアプリケーションの構成方法について解説しました。またエクスポート機能は、Windowsフォームアプリケーションでもご利用いただけます。アプリケーションの要件にあわせてご活用ください。

 全8回にわたって、ActiveReports for .NET 7.0Jの使用方法や新機能の一部を紹介いたしました。簡単な紹介ではございましたが、帳票開発の一助になれば幸いです。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

バックナンバー

連載:5分でわかるActiveReports帳票

もっと読む

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5