次の方法で共有


DataGridView のデータをレポートに表示する方法

download.gif サンプル コードのダウンロード (vbmigtips_ReportViewer.msi, 2.09 MB)

※ このサンプルをインストールするには Visual Studio 2005 が必要です。

GridView コントロールに表示されたデータをレポート表示する場合、Visual Basic 2005 では ReportViewer コントロールがサポートされたことにより、簡単に作成できるようになりました。そこで今回は、図1 のように GridView に表示されたデータをレポート表示させる方法について紹介します。今回は別フォームを起動し、DataGridView に表示されたデータを集計し、レポートを作成します。

ReportViewer_fig01.jpg
 図1

まず、レポート作成の元となるデータベースファイルのテーブル情報を表示させます。今回は、SQL Server データベース ファイルを使用します (SQL Server データベース ファイルのアクセス、及び、表示方法は「SQL Server へのデータベース作成と表示方法」を参照してください)。

ReportViewer_fig02.jpg
図2

次に、レポート表示するフォームを作成します。新たにフォームを追加し、[ツールボックス]から ReportViewer コントロールをドラッグ & ドロップし、フォームに貼り付けます。追加した ReportViewer コントロール のスマートタブから「新しいレポートを作成する」を選択します。すると、レポート デザイナ (図3) が起動し、アプリケーション内にレポート (.rdlc) ファイルが作成されます。

ReportViewer_fig03.jpg
 図3

今回は、図3 で表示した DataGridView 内のデータとその集計結果、そして、データを基にした円グラフを表示させます。そこで、まず、[ツールボックス]からテーブルをレポートにドラッグし、各列に表示するデータ値を指定します。[データソース]ウィンドウから、表示したいデータソース内のデータ項目を選択します。テーブルの詳細 (中央) のセルにドラッグします。これにより、 詳細セルに「=Fields!商品ID.Value」のように表示するデータ式が記述され、さらに、そのすぐ上のセル (ヘッダーセル) にフィールド名が自動追加されます (図4)。

ReportViewer_fig04.jpg
図4

今回は、4 つの項目を表示するため、列を追加します (列ハンドルを選択し、右クリックで「左に列を挿入」または「右に列を挿入」を選択することで追加できます)。

次に、テーブルのフッターセルに「数量」と「合計」の総計を表示します。「数量」列のフッターセルに「=Sum(Fields!数量.Value)」と指定し、「合計」列のフッターセルには「=Sum(Fields!合計.Value)」を指定します (図5)。

ReportViewer_fig05.jpg
 図5

続いて、円グラフを追加します。[ツールボックス]から グラフをレポートにドラッグします。レポートに貼り付けたグラフの Type プロパティを「Pie」に設定します。そして、グラフを生成するためのデータ フィールドとカテゴリ フィールドを[データソース]ウィンドウからドロップしてきます。今回は、データ フィールドを「合計」項目とし、カテゴリ フィールドを「商品ID」とします (図6)。

ReportViewer_fig06.jpg
 図6

最後に、レポートを表示するフォームの ReportViewer コントロールの LocalReport.ReportEmbeddedResource プロパティに、上記で作成したレポートファイルを指定します (ReportViewer コントロールのスマートタブの「レポートの選択」で設定可能です)。

以上の作業を行い、ビルド後、アプリケーションを実行すると図2 が表示されます。図2 の「レポート」ボタンをクリックすると、表示されたフォーム内にレポートが表示されます (図7)。

ReportViewer_fig07.jpg
 図7