本稿は、連載『5分でわかるActiveReports帳票(2007年度版)』(渡辺俊史・宮本奈紗 著)の増補改訂版です。
WebViewerコントロールを使ったWebアプリケーション
(Professionalエディションのみ)
ActiveReportsでWebアプリケーションを作成する場合、WebViewerコントロールを使う方法が簡単です。
なお、WebViewerコントロールは、Professionalエディションのみの機能です。Standardエディションには付属していません。StandardエディションでWebアプリケーションを作成する方法については後述します。
WebViewerコントロールの配置
Webアプリケーションを作成し、Webフォーム上に、WebViewerコントロールを配置します。WebViewerコントロールはツールボックスから配置しますが、もしツールボックスにWebViewerコントロールが存在しない場合は、製品ヘルプの[クイックスタート]-[ActiveReportsコントロールを追加する]を参照の上、ツールボックスにWebViewerコントロールを追加してください。
WebViewerコントロールをWebフォーム上にドラッグ&ドロップします。配置後、コントロールを適当なサイズに調整します。
ViewerTypeプロパティの設定
WebViewerコントロールには4つのビューワ形式が用意されており、ViewerTypeプロパティでどの形式で表示するか設定します。それぞれの形式の概要は、以下のとおりです。
HtmlViewer
HTMLの機能を利用したビューワです。レポートはWebViewerコントロールの領域の枠の中に表示されます。ページ移動、検索などの処理をするボタンが用意されています。
RawHtml
HtmlViewer形式と同様、こちらの形式もHTMLの機能を利用して表示しますが、HtmlViewer形式と異なり、ページ移動などのボタンは付いていません。単純にWebフォーム上にレポートの内容が表示されるだけです。複数ページのレポートは、ブラウザ上に一続きになって表示されます。
AcrobatReader
PDF形式でレポートを表示します。Webフォーム上のWebViewerコントロールの領域に、PDF化したレポートが表示されます。実際の表示処理は、クライアントのブラウザに組み込まれたPDFリーダー(Adobe Readerなど)が行います。そのためクライアントのリーダーの設定によって、ツールバーが表示されたりされなかったりするなど、外観に影響を受けることがあります。
FlashViewer
Adobe Flash Playerの機能を利用したビューワです。印刷、検索、表示形式の変更、拡大、縮小など、さまざまな機能を提供する形式です。この形式を使用する場合、クライアントにはAdobe Flash Playerがインストールされている必要があります。
上記4つのうちから、使いたい形式にあわせてWebViewerコントロールのViewerTypeプロパティに設定しておきます。
FlashViewerを使う場合の.swfファイルの追加
FlashViewerを使う場合、.swfファイルをWebアプリケーションの中に組み込んでおく必要があります。
ActiveReportsをインストールしたディレクトリ内のDeployment\Flashフォルダから、以下の2ファイルを、Webアプリケーションのプロジェクト(Webフォームと同じフォルダ)にコピーしておきます。
- Grapecity.ActiveReports.Flash.v7.swf
- Grapecity.ActiveReports.Flash.v7.Resources.swf
また、FlashViewerにはいくつかのテーマ(外観)が用意されています。それらを適用したい場合には、Deployment\Flashフォルダの中にあるThemesフォルダをフォルダごと、上記.swfと同じ場所にコピーしておきます。
なお、デフォルトでは上記のようにWebフォームと同じフォルダに配置しますが、WebViewerコントロールのFlashViewerOptions.Urlプロパティ、FlashViewerOptions.ResourceUrlプロパティ、FlashViewerOptions.ThemeUrlプロパティなどから、これらのファイル・フォルダの配置場所を設定することも可能です。
コードによるレポートの設定
Page(Webフォーム)のLoadイベントや、ボタンのClickイベントで、WebViewerコントロールに表示したいレポートを設定します。セクションレポートとページレポートで若干違います。以下のようになります。
Dim rpt As New SectionReportSample Me.WebViewer1.Report = rpt
GrapeCity.ActiveReports.SectionReport rpt = new SectionReportSample(); this.WebViewer1.Report = rpt;
Dim rpt As New GrapeCity.ActiveReports.PageReport rpt.Load(New System.IO.FileInfo("レイアウトファイル.rdlx")) Me.WebViewer1.Report = rpt
GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport(); rpt.Load(new System.IO.FileInfo("レイアウトファイル.rdlx")); this.WebViewer1.Report = rpt;
表示
ここまでの設定・実装を行い、プロジェクトを実行すると、Webフォーム上に配置したWebViewerコントロールの領域にレポートが表示されます。