SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

5分でわかるActiveReports帳票

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

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

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

レポートのエクスポート

 WebViewerコントロールはProfessionalエディション固有の機能なので、Standardエディションでは利用できません。

 StandardエディションでWebアプリケーションにActiveReportsを組み込みたい場合、エクスポート機能を使用します。

 エクスポート機能をWebアプリケーションに組み込む方法は後ほど説明することにして、まずは、エクスポート機能の概要を説明します。

エクスポート

 ActiveReportsで作成したレポートは、PDFやExcelなどの形式に変換できます。このようにレポートを変換して出力することを「エクスポート」といいます。

エクスポート可能な形式・組み合わせ

 ActiveReportsではさまざまな形式へのエクスポートが可能ですが、セクションレポートとページレポートそれぞれでエクスポートできる形式に違いがあります。以下の表やこちらのナレッジ文書を参照してください。

表:エクスポート可能な形式
  セクションレポート ページレポート
HTML
PDF
RTF
Microsoft Word(doc) ×
TEXT
イメージ(bmp、emf、gif、jpg、png) △(別の手段で可能)
Excel(xls、xlsx)
XML ×
TIFF

エクスポートの処理

 エクスポートを実行する場合、大きく分けて2つの方法があります。

 1つめは、「エクスポートフィルタ」を使って実行する方法。もう一つは、ページレポートでPageDocumentクラスのRenderメソッドと形式毎の拡張機能クラスを使用する方法です。まずは、前者の方法から説明します。

エクスポートフィルタを使用する方法

 セクションレポート、ページレポートの両方で、HTML、PDF、RTF、Text、Tiff、Excelの各形式にエクスポートすることができます。

 使用方法はどの形式でも基本的に同じなので、ここではPDF形式へのエクスポートを例に説明します。手順は以下のようになります。

  1. セクションレポートを生成する。
  2. レポートを実行し、SectionReport.Documentオブジェクト(SectionDocument型)を生成する。
  3. エクスポートフィルタのオブジェクトを宣言する。
  4. エクスポートフィルタのExportメソッドでエクスポートを行う。
セクションレポートのエクスポート(VB.NET)
Dim rpt As New SectionReportSample
rpt.Run()
Dim exp As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
exp.Export(rpt.Document, "出力ファイル名")
セクションレポートのエクスポート(C#)
GrapeCity.ActiveReports.SectionReport rpt = new SectionReportSample();
rpt.Run();
GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport exp =
    new GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport();
exp.Export(rpt.Document, "出力ファイル名");

 ページレポートの場合も基本的には同じですが、SectionDocumentのかわりにPageDocumentを使用する点が異なります。

ページレポートのエクスポート(VB.NET)
Dim pageReport As New GrapeCity.ActiveReports.PageReport _
    (New System.IO.FileInfo( "ページレポート.rdlx"))
Dim pageDocument As _
    New GrapeCity.ActiveReports.Document.PageDocument(pageReport)
Dim exp As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
exp.Export(pageDocument, "出力ファイル名")
ページレポートのエクスポート(C#)
GrapeCity.ActiveReports.PageReport pageReport =
    new GrapeCity.ActiveReports.PageReport
    (new System.IO.FileInfo( " ページレポート.rdlx"));
GrapeCity.ActiveReports.Document.PageDocument pageDocument =
    new GrapeCity.ActiveReports.Document.PageDocument(pageReport);
GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport exp =
    new GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport();
exp.Export(pageDocument, "出力ファイル名");

描画拡張機能を使用したエクスポート

 描画拡張機能は、ページレポートについてのみ使用可能な機能であり、以下のような手順になります。

  1. ページレポートを生成する。
  2. PageDocumentオブジェクトを得る。
  3. 拡張描画機能のためのオブジェクトと、描画に必要な、FileInfo、Settings(オプション)などのオブジェクトを得る。
  4. PageDocument.Renderメソッドでエクスポートを行う。
描画拡張機能を使用したページレポートのエクスポート(VB.NET)
Dim pageReport As New GrapeCity.ActiveReports.PageReport _
    (New System.IO.FileInfo("レイアウトファイル.rdlx"))
Dim pageDocument As _
    New GrapeCity.ActiveReports.Document.PageDocument(pageReport)

Dim exp As New GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension
Dim provider As New GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider _
    (New System.IO.DirectoryInfo("出力フォルダ名"), "出力ファイル名")
pageDocument.Render(exp, provider)
描画拡張機能を使用したページレポートのエクスポート(C#)
GrapeCity.ActiveReports.PageReport pageReport =
    new GrapeCity.ActiveReports.PageReport
    (new System.IO.FileInfo( "ページレポート.rdlx"));
GrapeCity.ActiveReports.Document.PageDocument pageDocument =
    new GrapeCity.ActiveReports.Document.PageDocument(pageReport);

GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension 
    exp = new GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension();
GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider provider = 
    new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider
    (new System.IO.DirectoryInfo("出力フォルダ名"), "出力ファイル名");
pageDocument.Render(ex, provider);

 なお、エクスポート機能にはエクスポート結果に対してさまざまな設定を行うためのプロパティが用意されています。例えば、PDFエクスポート機能にはPDFファイルにパスワードを設定するプロパティや、印刷禁止などの属性を設定するプロパティが用意されています。これらの設定については製品ヘルプの[概念]-[エクスポート]-[エクスポートフィルタ]や、該当するクラスのクラスライブラリリファレンスを参照してください。

エクスポートの再現性の限界

 エクスポートが可能な形式の中で、Viewerコントロールにプレビューした時と近い表示が可能な形式は、PDF、Tiff、Imageなどです。その他の形式は、ファイル形式自体の制限や、出力されないコントロールがあることにより、Viewerコントロールにプレビューした結果とは、レイアウト的に異なる点が生じます。

 例えば、ページレポートのWord形式へのエクスポートは、Matrixデータ領域の出力に対応していないため、Matrixの部分は空白になります。またHTMLエクスポートは、LineやShapeコントロールが出力されません。こうした制限事項については、製品付属のリリースノートにある[制限事項と注意点]-[エクスポート]を参照してください。

 また、Excel形式へのエクスポートでは、仕様的な制限から、エクスポートした結果とViewerコントロールなどにプレビューした結果に違いが生じる場合があります。例えば、不要な行や列が入ることや、文字列が複数のセルに分割される、文字列の一部しか出力されないといった違いも生じます。これは、自由にレイアウトされたレポートをExcelのセルにあわせて自動的に変換するためであり、人間がExcelを使用して、直接レイアウトするほどの精度はありません。

 製品ヘルプの[よくある質問]-[セクションレポート]-[エクスポート]の「Excelエクスポートの結果がずれる」のトピックにあるように、レイアウトを調整することでExcelへのエクスポート結果をViewerコントロールのプレビュー結果に近づけることは可能なので、そうした方法も検討してください。

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

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
5分でわかるActiveReports帳票連載記事一覧

もっと読む

この記事の著者

グレープシティ株式会社 ActiveReportsチーム(グレープシティカブシキガイシャ アクティブレポートチーム)

 宮城県仙台市に本社を構えるグレープシティでは、日本の業務に適したシステムをより早く開発するためのソフトウェアを提供しています。エンドユーザーの利用しやすさ、幅広いユーザー環境への対応、そして何よりプログラマの作業を軽減することを一番に目指しています。 ActiveReportsは、帳票開発に必要なあらゆる機能を備えた当社を代表するコンポーネントの1つ。1998年の発売以来、日本だけでなく全世界で多数の帳票開発者に使用されています。製品開発は同チームが中心になり、「日本仕様」の厳しい要望を実現することを目指しています。...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7612 2015/07/23 16:16

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング