SHOEISHA iD

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

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

現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(ActiveReports)(AD)

ActiveReports on Azureで帳票を適材適所で利用する

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

デフォルトページの作成

 ソリューションエクスプローラーでプロジェクト名を右クリックして[追加]-[Webフォーム]メニューを選択して「PdfPage.aspx」という名前のWebフォームを追加します。

 Webフォームが追加できたらコードビハインド部分に次のコードを記載します。

リスト2 PdfPage.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
    // エクスポートするページレポートのインスタンスを生成します。
    var rptPath = new FileInfo(Server.MapPath("reports") + "\\RdlReport1.rdlx");
    var report = new GrapeCity.ActiveReports.PageReport(rptPath);
    var reportDocument = new GrapeCity.ActiveReports.Document.PageDocument(report);

    // 描画拡張機能でレポートをエクスポートします。
    var pdfRenderingExtension = new GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension();
    var outputProvider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
    reportDocument.Render(pdfRenderingExtension, outputProvider);

    Response.ContentType = "application/pdf";
    Response.AddHeader("content-disposition", "inline;filename=MyExport.pdf");
    using (var ms = new MemoryStream())
    {
        outputProvider.GetPrimaryStream().OpenStream().CopyTo(ms);
        Response.BinaryWrite(ms.ToArray());
        Response.End();
    }
}

テスト実行

 ここまでの作業が終わったらVisual Studioで実行してみましょう。ビルドが終わるとIIS Expressが自動的に立ち上がりPdfPage.aspxを指定すれば、先ほど定義したように、線が1本表示されたPDFが確認できます。

図6 開発環境での実行
図6 開発環境での実行

Azureへの発行

 開発環境での実行ができたのでAzureにデプロイして動作を確認してみよう。

 ソリューションエクスプローラーでプロジェクトを右クリックして[発行]メニューを選択します。

 ダイアログで[Microsoft Azure App Service]、最初のデプロイであれば[新規作成]を選択して[発行]ボタンをクリックします。

図7 発行先の選択
図7 発行先の選択

 アプリ名やサブスクリプションを選択していきますが、ここで重要なのがApp Serviceプランです。レイテンシーを考えたら西日本か東日本のリージョンで、また、ナレッジベースによれば無料プランや共有プランだと日本語の文字間隔が不正になるとあるので、B1プラン以上の料金プランを選択します。

図8 App Serviceの作成
図8 App Serviceの作成

 発行に成功したらPdfPage.aspxを指定して表示してみれば、開発環境とまったく同様にPDFが表示できます。6.0Jで苦労してやっと実現できていたことがこれだけ簡単にできてしまうわけです。

図9 Azureでの実行
図9 Azureでの実行

次のページ
Tablixを使った定義例

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(ActiveReports)連載記事一覧

もっと読む

この記事の著者

初音玲(ハツネアキラ)

 国内SIerのSEでパッケージ製品開発を主に行っており、最近は、空間認識や音声認識などを応用した製品を手掛けています。 個人的には、仕事の内容をさらに拡張したHoloLensなどのMRを中心に活動しています。 Microsoft MVP for Windows Development ブログ:http://hatsune.hatenablog.jp/

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

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10564 2018/01/10 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング