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 件のコメント:
コメントを投稿