SHOEISHA iD

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

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

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

帳票Webアプリ実践構築ガイド
ActiveReports for .NETを使いこなす!~その2

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

実運用環境展開時の注意点

 開発環境にActiveReportsをインストールして開発を行っているときは、ActiveReportsのライセンスの付与や、ActiveReportsコンポーネントの配置などは特に意識する必要はありません。しかし、ASP.NETに作成したものを配置するときには、ライセンス付与とコンポーネント配置に関する作業が必要になります。

ライセンス付与

 Webアプリに必要なライセンスはActiveReportsのライセンスだけですが、実行時ライセンス料は不要ですので、ライセンスを供与する設定を行うだけで済みます。また、今回のサンプルではPDFファイルを生成していますが、サーバ側へのAdobe Readerのインストールやライセンスは不要です。

 WebアプリにActiveReportsのライセンスを供与するには、web.configのappSettingsセクションにkeyを追加します。

  1. 製品付属のweb.configキー生成ツール(図12)を使ってWebキーを生成
  2. 図12 Webキー生成
    図12 Webキー生成
  3. web.configファイルを開き、appSettingsセクションに生成された部分をコピー&ペーストします。今回、ASP.NET Webサービスを参照設定しているため、リスト4のようにWeb参照が設定されているので、<add key="DataDynamicsARLic"・・・・・・ />の行だけを追記します。
  4. リスト4 web.config
        :
    <appSettings>
     <add key="WebBillBound.BillBound" value="http://localhost:9661/CZ0906Bound/BillBound.asmx" />
    <!--ここに追加します -->
    </appSettings>
        :
    
  5. [Webサイトの配布]を実行し、リビルドと配布を行います。実運用サイトにいきなり配布せずに、配布先を開発機の別フォルダにして、そのフォルダの中身を実運用サイトにコピーすると、予期せぬ事態が発生しても運用が止まらずに済みます。

ActiveReportsコンポーネントをアプリと同じフォルダに配置する方法

 ActiveReportsコンポーネントは、作成したWebアプリをビルドしたDLLファイルが格納されている仮想フォルダのbinフォルダに配布すれば、実行することができます。どのファイルを配布するかは、web.configのassembliesセクションに書かれている内容を参考にするとよいでしょう。

 次に、binフォルダの中にjaフォルダをつくって「ActiveReports3.resources.dll」「ActiveReports.Viewer3.resources.dll」を配置すれば、各種メッセージなども日本語化できます。こちらの作業も忘れずに、併せて実施するようにしましょう。

ActiveReportsコンポーネントをGACとして配置する方法

 ActiveReportsは厳密な名前が付与されたコンポーネントなので、ASP.NETはGACに登録されていることが基本的な動作環境となります。アプリと同じフォルダに配置する方法でも動作はしますが、GACに登録するのがベストです。

 GACに登録するならば、作成したアプリと同じ場所に配布する必要はないので、ASP.NETの稼働サーバでActiveReportsの専用のフォルダを作成し、コマンドラインから次のコマンドを実行します。

GAC登録のコマンド
Gacutil -I 配布したDLLファイル名

 1つずつ登録するのも大変ですから、必要なActiveReportsコンポーネントを参照設定したWindowsアプリを作成してからmsiファイルを作成し、そのmsiでActiveReportsコンポーネントをGACに登録するように定義しておくとよいでしょう。後は、このmsiファイルをASP.NETの稼働サーバで実行するようにしておくと、サーバが何台あっても少ない手間で済みます。

まとめ

 今回は、ブラウザを限定しないためにPDFを使う方式を説明しましたが、ActiveReportsのProfessional EditionにあるWebビューアのActiveXコントロールを併用することで、プレビューなしの印刷なども実現できます。しかし、この方式は、対象ブラウザがInternet Explorerに限定されるので、システム全体の用途などを考えて、採用方式を決定する必要があります。

図13 ActiveXコントロールのダウンロードダイアログ
図13 ActiveXコントロールのダウンロードダイアログ
ワンポイントテクニック [Detail]セクションの高さを微調整しよう

 ActiveReportsの帳票定義では、区切り線などのY1プロパティやY2プロパティの値は0.01単位ですが、[Detail]セクションの高さは0.001単位で指定ができます。そのため、仮に明細一覧の項目の高さを0.19とし、区切り線の縦方向の位置も0.19とした場合に、区切り線がうまくプレビュー表示されなかったり、印刷されなかったりすることがあります。その場合、[Detail]セクションの高さを0.191とすれば、罫線に隙間があいたり印刷されなかったりせず、プレビュー表示と印刷ができます。

図14 セクション高の調整結果
図14 セクション高の調整結果

製品情報

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

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

もっと読む

この記事の著者

初音玲(ハツネアキラ)

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4026 2009/06/12 15:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング