2015年9月12日土曜日

ReportViewer の LocalReport を利用する(3)

ここまでの内容でローカルレポートとなる rdlc ファイルの作成ができたので、次はプレビュー画面を表示させます。といっても大したことはなく、提供されている ReportViewer コントロールを利用することで、WinForms または WebForms であれば簡単に帳票プレビューが行えます。

一つ注意が必要なのは、ReportViewer コントロールに対しての参照設定です。

Report Viewer 2010 までは Visual Studio 側でも認識しており、ツールボックスにもすぐ表示できるのですが、Report Viewer 2012 からは手動で参照設定する必要があります。

RDLC2 

その点だけ気を付ければ、あとは利用するバージョンに関わらず同様のコーディングとなります。

   1: 'Form に貼り付けた ReportViewer コントロールの名前を rptViewer としています
   2: Dim rdlc As LocalReport = Me.rptViewer.LocalReport
   3: rdlc.ReportPath = "Sample.rdlc"
   4: Me.rptViewer.ProcessingMode = ProcessingMode.Local
   5:  
   6: 'レポートで利用するデータセットの登録
   7: Dim dt As New DataTable = GetSampleData()
   8: rdlc.DataSources.Clear()
   9: rdlc.DataSources.Add(New ReportDataSource("DataSet1", dt))
  10:  
  11: '表示モード指定とデータセット反映
  12: Me.rptViewer.SetDisplayMode(DisplayMode.PrintLayout)
  13: Me.rptViewer.RefreshReport()

ReportViewer コントロールでは、ServerReport と LocalReport においてアクセスするためのプロパティを分けてあります。SQL Server Reporting Service を利用する場合は、ServerReport プロパティを通した処理を、今回のように全てをローカルで行う Local Report の場合は LocalReport プロパティを通して処理を行います。

2~4 行目で利用する rdlc ファイルを指定し、処理モードを Local に設定しています。

7~9 行目ではレポートで利用するデータ(今回は DataTable)をセットしています。この際、ReportDataSource クラスを利用するのですが、ここで設定する名称は rdlc 側で定義してあるデータセット名となります。データソース名ではないので注意してください。

最期に 12 行目で初期表示モードを指定しています。ReportViewer では印刷時モードと論理モードがあるのですが、個人的には論理モードの使い道をわかっておらず、基本印刷時モードで表示しています。

以上のようにすることで、ReportViewer を利用したアプリが作成できます。
Visual Studio Pro 版以降を所有しておらず、Express 版を利用してツールに費用をかけないで開発しなくてはならない場合では参考になるかと思います。

0 件のコメント:

コメントを投稿