チュートリアル : ローカル処理モードでのデータベース データ ソースと ReportViewer Windows フォーム コントロールの使用
このチュートリアルでは、Windows フォーム アプリケーション プロジェクトでレポートを作成する方法と、アプリケーションのユーザーがレポートを表示できるように ReportViewer コントロールを Windows フォームに追加する方法について説明します。
必要条件
このチュートリアルを使用するには、AdventureWorks2008 サンプル データベースへのアクセス権が必要です。詳細については、「チュートリアル: AdventureWorks データベースのインストール」を参照してください。
Windows フォーム アプリケーション プロジェクトにレポートを追加するには、次の手順を実行します。この例では、Microsoft Visual Basic でアプリケーションを作成します。
新しい Windows アプリケーション プロジェクトの作成
Visual Studio を開きます。[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
[インストールされたテンプレート] ペインで [Visual Basic] を選択し、[Windows フォーム アプリケーション] を選択します。Visual Studio の起動設定によっては、[Visual Basic] ノードが [他の言語] に表示される場合もあります。
[名前] ボックスに、プロジェクト名を「ReportWalkthrough」と入力します。
[場所] ボックスにプロジェクトを保存するディレクトリを入力するか、[参照] をクリックしてディレクトリを選択します。
[OK] をクリックします。
Windows フォーム デザイナーが開き、作成したプロジェクトの Form1.vb が表示されます。
データ ソース接続と DataTable の定義
[プロジェクト] メニューの [新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、[データセット] をクリックします。
データセットの名前を入力して [追加] をクリックします。これにより、新しい XML スキーマ ファイルがプロジェクトに追加され、データセット デザイナーが開きます。既定の名前は DataSet1.xsd です。
データセット デザイナーでツールボックスを開き、[TableAdapter] をデータセット デザイン画面にドラッグします。すると、TableAdapter 構成ウィザードが開きます。
[データ接続の選択] ページで [新しい接続] をクリックします。
Visual Studio で初めてデータ ソースを作成する場合は、[データ ソースの選択] ページが表示されます。[データ ソース] ボックスで [Microsoft SQL Server] を選択します。
[接続の追加] ページで、次の手順を実行します。
[サーバー名] ボックスに、AdventureWorks2008 データベースが配置されているサーバーの名前を入力します。
SQL Server Express の既定のインスタンスは (local)\sqlexpress です。
[サーバーにログオンする] セクションで、データにアクセスするためのオプションを選択します。既定値は [Windows 認証 (統合セキュリティ) を使用する] です。
ドロップダウン リストで [AdventureWorks2008] をクリックします。
[OK] をクリックしてウィザードに戻ります。
前の手順で [SQL Server 認証を使用する] を指定した場合は、機密性の高いデータを文字列に含めるか、または情報をアプリケーション コードに設定するかを指定するオプションを選択します。
[次へ] をクリックします。
[接続文字列をアプリケーション構成ファイルに保存する] ページで、接続文字列の名前を入力するか、既定の AdventureWorks2008ConnectionString をそのまま使用します。[次へ] をクリックします。
[コマンドの種類を選択します] ページで [SQL ステートメントを使用する] を選択し、[次へ] をクリックします。
[SQL ステートメントの入力] ページで、AdventureWorks2008 データベースからデータを取得するための次の Transact-SQL クエリを入力し、[完了] をクリックします。
SELECT d.name as Dept, s.Name as Shift, e.BusinessEntityID as EmployeeID FROM (HumanResources.Department d INNER JOIN HumanResources.EmployeeDepartmentHistory e ON d.DepartmentID = e.DepartmentID) INNER JOIN HumanResources.Shift s ON e.ShiftID = s.ShiftID
[クエリ ビルダー] ボタンをクリックし、クエリ ビルダーを使用してクエリを作成し、[クエリの実行] ボタンを使用してクエリをチェックすることもできます。クエリから必要なデータが返されない場合は、AdventureWorks の以前のバージョンを使用している可能性があります。AdventureWorks2008 バージョンの AdventureWorks のインストールの詳細については、「チュートリアル: AdventureWorks データベースのインストール」を参照してください。
[生成するメソッドの選択] ページで、[完了] をクリックします。
データセット デザイン画面に、クエリから生成された列を含む DataTable1 が表示されます。
レポート ウィザードを使用したレポートのデザイン
[プロジェクト] メニューの [新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、[レポート ウィザード] をクリックします。
レポート ファイル名を入力します。レポート名は、既定で Report1.rdlc になります。[追加] をクリックします。
これにより、レポート ウィザードが起動されます。
[データセットのプロパティ] ページの [データ ソース] ボックスで、作成した DataSet を選択します。
[使用できるデータセット] ボックスの一覧が自動的に更新され、作成した DataTable が表示されます。
[次へ] をクリックします。
[フィールドの配置] ページで、次の操作を行います。
[使用できるフィールド] から [Dept] を [行グループ] ボックスにドラッグします。
[使用できるフィールド] から [Shift] を [列グループ] ボックスにドラッグします。
[使用できるフィールド] から [EmployeeID] を [値] ボックスにドラッグします。
Sum(EmplyeeID) の横にある矢印をクリックし、[Count] を選択します。
[次へ] を 2 回クリックし、[完了] をクリックします。
.rdlc ファイルが作成され、レポート デザイナーで開かれます。デザインした Tablix がデザイン画面に表示されます。
.rdlc ファイルを保存します。
アプリケーションへの ReportViewer コントロールの追加
プロジェクトの Form1.vb ファイルをデザイン モードで開きます。
[フォーム] のプロパティ ウィンドウで [サイズ] プロパティを展開し、[高さ] プロパティを 700 に設定します。
ツールボックスの [レポート] セクションから ReportViewer コントロールをフォームにドラッグします。
右上隅のスマート タグ グリフをクリックして、ReportViewer コントロールのスマート タグ パネルを開きます。[レポートの選択] ボックスをクリックし、一覧から、作成したレポートを選択します。レポートを選択すると、そのレポートで使用されているデータ ソースのインスタンスが自動的に作成されます。DataSet (DataTable の ADO.NET コンテナー)、TableAdapter コンポーネント、およびレポートで使用されている各データ ソースに対応する BindingSource オブジェクトのインスタンスを作成するコードが生成されます。
開いているスマート タグ パネルで、[親コンテナーにドッキングする] をクリックします。
アプリケーションのビルドと実行
[ビルド] メニューの [ReportWalkthrough のビルド] をクリックします。ビルド プロセスの一環としてレポートがコンパイルされます。一部のエラー (レポートで使用されている式の構文エラーなど) は、タスク一覧に追加することによって記録されます。
F5 キーを押してアプリケーションを実行し、フォーム内にレポートを表示します。
関連項目
参照
LocalReport.SubreportProcessing
LocalReport.SubreportProcessing
概念
ReportViewer タスクのスマート タグ パネルの使用