チュートリアル : ローカル処理モードでのデータベース データ ソースと ReportViewer Windows フォーム コントロールの使用

このチュートリアルでは、Microsoft Visual Studio 2008 Windows アプリケーション プロジェクトでレポートを作成する方法と、アプリケーションのユーザーがレポートを表示できるように ReportViewer コントロールを Windows フォームに追加する方法について説明します。

前提条件

このチュートリアルを使用するには、AdventureWorks サンプル データベースへのアクセス権が必要です。詳細については、「チュートリアル : AdventureWorks データベースのインストール」を参照してください。

Visual Studio Windows アプリケーション プロジェクトにレポートを追加するには、次の手順を実行します。この例では、Microsoft Visual Basic でアプリケーションを作成します。

新しい Windows アプリケーション プロジェクトの作成

  1. Visual Studio 2008 を開きます。[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

  2. [プロジェクトの種類] ペインで、[Visual Basic] をクリックします。

  3. [テンプレート] ペインで、[Windows アプリケーション] をクリックして Microsoft Windows アプリケーションを作成します。

  4. [名前] ボックスに、プロジェクト名を「ReportWalkthrough」と入力します。

  5. [場所] ボックスにプロジェクトを保存するディレクトリを入力するか、[参照] をクリックしてディレクトリを選択します。Windows フォーム デザイナが開き、作成したプロジェクトの Form1.vb が表示されます。

データ ソース接続と DataTable の定義

  1. [プロジェクト] メニューの [新しい項目の追加] をクリックします。

  2. [新しい項目の追加] ダイアログ ボックスで、[データセット] をクリックします。

  3. データセットの名前を入力して [追加] をクリックします。これにより、新しい XML スキーマ ファイルがプロジェクトに追加され、データセット デザイナが開きます。既定の名前は DataSet1.xsd です。

  4. データセット デザイナ モードでツールボックスを開き、[TableAdapter] をデータセット デザイン画面にドラッグします。すると、TableAdapter 構成ウィザードが開きます。

  5. [データ接続の選択] ページで、[新しい接続] をクリックします。

  6. [データ ソース] ダイアログ ボックスで [Microsoft SQL Server] を選択します。[サーバー名] ダイアログ ボックスに、AdventureWorks が配置されているサーバーの名前を入力します。データベースのドロップダウン リストから [AdventureWorks] を選択し、[OK] をクリックしてウィザードの次のページに進みます。

  7. [接続文字列をアプリケーション構成ファイルに保存する] ページで、接続文字列の名前を入力するか、既定の [AdventureWorksConnectionString] を受け入れます。[次へ] をクリックします。

  8. [コマンドの種類を選択します] ページで [SQL ステートメントを使用する] を選択します。他のオプション ボタンが選択されていないことを確認します。

  9. [SQL ステートメントの入力] ページで、AdventureWorks データベースからデータを取得するための次の Transact-SQL クエリを入力し、[完了] をクリックします。[クエリ ビルダ] ボタンをクリックし、クエリ ビルダを使用してクエリを作成し、[クエリの実行] ボタンを使用してクエリをチェックすることもできます。

    SELECT d.name as Dept, s.Name as Shift, e.EmployeeID 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 の以前のバージョンを使用している可能性があります。SQL Server 2005 バージョンの AdventureWorks データベースのインストールの詳細については、「チュートリアル : AdventureWorks データベースのインストール」を参照してください。

  10. [生成するメソッドの選択] ページで、[メソッド名: Fill] について既定の [DataTable にデータを格納する] を受け入れ、[メソッド名: GetData] については [DataTable を返す] を受け入れます。[次へ] をクリックします。

  11. [ウィザードの結果] ページの [完了] をクリックします。

  12. [データセット デザイナ] ページに、クエリから生成された列を含む DataTable1 が表示されます。[データ] メニューの [データ ソースの表示] をクリックし、[DataTable1] ノードを展開してその列を表示します。次の手順でレポートにデータをバインドする際は [データ ソース] ウィンドウと、Dept、Shift、および EmployeeID の各フィールドを使用します。

レポートのデザイン

  1. [プロジェクト] メニューの [新しい項目の追加] をクリックします。

  2. [新しい項目の追加] ダイアログ ボックスで、[レポート] をクリックします。

  3. レポート ファイル名を入力します。レポート名は、既定で Report1.rdlc になります。[追加] をクリックします。レポート デザイナが起動し、レポート ページを表す網点の画面が表示されます。

  4. ツールボックスを開きます。テキスト ボックスをクリックし、次にフォームをクリックします。

  5. テキスト ボックスに「# of Employees per Shift per Dept」というレポート タイトルを入力します。

  6. マトリックス レポート アイテムを、ツールボックスからレポートのテキスト ボックスの下にドラッグします。

  7. [データ ソース] ウィンドウで DataTable1 を展開して Dept 列、Shift 列、および EmployeeID 列を表示します。Dept フィールドを、[行] ボックスのマトリックスの最初の列の 2 番目の行にドラッグします。

  8. Shift フィールドを、[列] ボックスのマトリックスの 2 番目の列の最初の行にドラッグします。テキスト ボックスを選択したら、[TextAlign] プロパティを [右揃え] に設定します。[レポートの書式] ツール バーの [B] アイコンをクリックして太字のフォントを使用します。

  9. マトリックス内のいずれかの場所をクリックしてマトリックス データ領域を選択します。右クリックして、マトリックスの名前を選択します (既定値は matrix1 です)。マトリックス レポート アイテムが外枠で囲まれて表示されます。外枠を右クリックし、[プロパティ] をクリックします。表示されたダイアログ ボックスのタイトルが [マトリックスのプロパティ] であることを確認します。

  10. [グループ] タブをクリックします。[列] セクションで [編集] をクリックします。

  11. [並べ替えとグループ化] ダイアログ ボックスで [並べ替え] タブをクリックします。

  12. [式] の下にある最初のボックス内をクリックしてテキスト ボックスをアクティブにし、ドロップダウン矢印をクリックして、[=Fields!Dept.Value] を選択します。これにより、レポート データが部署名で並べ替えられます。

  13. EmployeeID フィールドを、[データ ソース] ウィンドウから [データ] ボックスのマトリックスの 2 列目の 2 番目の行にドラッグします。このテキスト ボックスを右クリックし、[プロパティ] をクリックします。

  14. [プロパティ] ウィンドウの [全般] タブで、式 (fx) ボタンをクリックして式エディタを起動します。

  15. 既定の Sum 集計関数を編集して、Count に変更します。式エディタを起動するには、テキスト ボックスを右クリックして [プロパティ] をクリックします。式は次のようになります。

    =Count(Fields!EmployeeID.Value)
    

アプリケーションへの ReportViewer コントロールの追加

  1. ソリューション エクスプローラで、Form1.vb を右クリックして [ビュー デザイナ] をクリックし、フォームをデザイン モードで開きます。

  2. フォームのプロパティ ウィンドウで、[+] をクリックして、[サイズ] プロパティを展開します。フォームの [高さ] を 700 に設定します。

  3. Visual Studio のツールボックスの [データ] セクションで、[ReportViewer] アイコンをクリックし、フォームをクリックします。フォーム幅と ReportViewer コントロール幅を必要に応じて調整します。

  4. 右上隅の三角形をクリックして、ReportViewer コントロールのスマート タグ パネルを開きます。[レポートの選択] ドロップダウン リストをクリックし、Report1.rdlc を選択します。レポートを選択すると、そのレポートで使用されているデータ ソースのインスタンスが自動的に作成されます。DataSet (DataTable の ADO.NET コンテナ)、TableAdapter コンポーネント、およびレポートで使用されている各データ ソースに対応する BindingSource オブジェクトのインスタンスを作成するコードが生成されます。

  5. 開いているスマート タグ パネルで、[親コンテナにドッキングする] をクリックします。

アプリケーションのビルドと実行

  1. [ビルド] メニューの [ReportWalkthrough のビルド] をクリックします。ビルド プロセスの一環としてレポートがコンパイルされます。一部のエラー (レポートで使用されている式の構文エラーなど) は、タスク一覧に追加することによって記録されます。

  2. F5 キーを押してアプリケーションを実行し、フォーム内にレポートを表示します。

参照

リファレンス

Microsoft.Reporting.WinForms.ReportViewer.Drillthrough
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WebForms.ReportViewer.Drillthrough
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing

概念

ReportViewer タスクのスマート タグ パネルの使用

その他のリソース

サンプルとチュートリアル