ReportViewerを使ってSQLSereverのデータテーブルの内容をレポートに表示します。
大まかな手順は以下の通りになります。
- プロジェクトにデータセットを追加しデータテーブルを用意します。
- プロジェクトにレポートファイルを追加しレポートをデザインします。
- フォームにReportViewerを配置します。
- コードにデータ取得とReportrViewerの処理を記述します
ReportViewerタスクの「新しいレポートをデザインします」を使わない方法です。
使用例:「商品マスタ」「店舗マスタ」「販売テーブル」の結合データを取得しレポートに表示します。 (VS2010による使用例です。VS2008では若干操作が異なります。)
商品マスタのテーブル定義
| | | | | | | |
| インスタンス名 | SQLEXPRESS | データベース名 | SAMPLE_DB |
| 論理テーブル名 | 商品マスタ | 物理テーブル名 | M_ITEM |
| 列定義 |
| No | 論理名 | 物理名 | データ型 | Nullを許容 | 主キー |
| 1 | 商品CD | ITEM_CD | nvarchar(4) | No | Yes |
| 2 | 商品名 | ITEM_NM | nvarchar(32) | No | |
| 3 | 単価 | PRICE | numeric(8,0) | No | |
店舗マスタのテーブル定義
| | | | | | | |
| インスタンス名 | SQLEXPRESS | データベース名 | SAMPLE_DB |
| 論理テーブル名 | 商品マスタ | 物理テーブル名 | M_ITEM |
| 列定義 | | | | |
| No | 論理名 | 物理名 | データ型 | Nullを許容 | 主キー |
| 1 | 商品CD | ITEM_CD | nvarchar(4) | No | Yes |
| 2 | 商品名 | ITEM_NM | nvarchar(32) | No | |
| 3 | 単価 | PRICE | numeric(8,0) | No |
|
売上データのテーブル定義
| | | | | | | |
| インスタンス名 | SQLEXPRESS | データベース名 | SAMPLE_DB |
| 論理テーブル名 | 売上データ | 物理テーブル名 | T_SALES |
| 列定義 | | | |
| No | 論理名 | 物理名 | データ型 | Nullを許容 | 主キー |
| 1 | NO | NO | numeric(8,0) | No | Yes |
| 2 | 店舗CD | SHOP_CD | nvarchar(4) | No | |
| 3 | 商品CD | ITEM_CD | nvarchar(4) | No | |
| 4 | 売上数 | UNIT_SALES | numeric(8,0) | No | |
| 5 | 売上額 | SALES_AMOUNT | numeric(8,0) | No |
|
1.フォームにReportViewerを配置します。
2.ツールバーの「プロジェクト」→「新しい項目の追加」からデータセットを追加します。
続けてツールボックスからデータセットにデータアダプターを追加します。
3.TeblAdapter構成ウィザードが起動されたらでーた接続を選択します。
4.コマンドの種類を選択します。
4.SQLステートメントを入力します。
5.生成するメッソドを選択します。
6.TableAdapter構成ウィザードを完了します。
7.データセットにTableAdaperが追加されています。
8.プロジェクトにレポートファイルを追加します。
続けてツールボックスからレポートにテーブルを追加します。
9.データセットのプロパティが起動されるのででデータソースとデータセットを選択します。
10.テーブルに列を追加します。
11.列に表示するアイテムを設定します。
12.ReportViewerタスクのレポートの選択で追加したレポートを選択します。
13.フォームに「データセット」「データアダプター」「バインディングソース」が追加されています。
14.フォームのLoadイベントにはデータ取得とReportViewerの処理が記述されています。
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: このコード行はデータを 'DataSet1.DataTable1' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
Me.DataTable1TableAdapter.Fill(Me.DataSet1.DataTable1)
Me.ReportViewer1.RefreshReport()
End Sub
End Class
</ br>15.実行します。</ br>
0 件のコメント:
コメントを投稿