チュートリアル : ReportViewer レポートの作成

このチュートリアルでは、Visual StudioAdventureWorks2008 サンプル データベースを使用して、Windows フォーム アプリケーション プロジェクトのテーブル形式の簡単なレポートを作成する方法について説明します。 ここでは、レポート ウィザードを使用してレポートをプロジェクトに追加し、ReportViewer Windows フォーム コントロールを Windows フォームに追加して、レポートをアプリケーションのユーザーに表示できるようにします。

ReportViewer コントロールを使用して詳細レポートを作成する方法の例については、「ReportViewer を使用してパラメーターを含む詳細 (RDLC) レポートを作成する (SSRS チュートリアル)」を参照してください。

Visual Studio のレポート デザイナーを使用したレポートのデザインの詳細については、「レポート デザイナー (Visual Studio)」を参照してください。

必須コンポーネント

このチュートリアルを使用するには、AdventureWorks2008 サンプル データベースへのアクセス権が必要です。 このチュートリアルで使用されているクエリは、旧バージョンの AdventureWorks で動作しない場合があります。 AdventureWorks2008 サンプル データベースを入手する方法の詳細については、「チュートリアル: AdventureWorks データベースのインストール」を参照してください。

このチュートリアルでは、Transaction-SQL クエリと ADO.NET の DataSet オブジェクトおよび DataTable オブジェクトについて理解していることを前提としています。

新しい Windows フォーム アプリケーション プロジェクトを作成するには

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

  2. [インストールされたテンプレート] ペインで [他の言語] を展開し、[Visual Basic] を選択します。

  3. [Windows フォーム アプリケーション] を選択します。

  4. [ファイル名] ボックスに「SimpleReport」と入力します。

  5. [場所] ボックスにプロジェクトを保存するディレクトリを入力するか、[参照] をクリックしてディレクトリを選択します。

  6. [OK] をクリックします。

    Windows フォーム デザイナーが開き、作成したプロジェクトの Form1 が表示されます。

  7. フォームをクリックします。 [表示] メニューの [プロパティ ウィンドウ] をクリックします。 [サイズ] プロパティを展開して [幅] および [高さ] を表示します。 [幅] を 500 ピクセルに設定します。

データセットとデータ テーブルを定義するには

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

  2. [新しい項目の追加] ダイアログで、[データセット] をクリックします。 データセットの名前を入力して [追加] をクリックします。 既定の名前は DataSet1.xsd です。

    これにより、新しい XSD ファイルがプロジェクトに追加され、データセット デザイナーが開きます。

  3. データセット デザイナーのツールボックスから [TableAdapter] コントロールをデザイン画面にドラッグします。

    これにより、TableAdapter 構成ウィザードが起動します。

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

  5. Visual Studio で初めてデータ ソースを作成する場合は、[データ ソースの選択] ページが表示されます。 [データ ソース] ボックスで [Microsoft SQL Server] を選択します。

  6. [接続の追加] ダイアログ ボックスで、次の手順を実行します。

    • [サーバー名] ボックスに、AdventureWorks2008 データベースが配置されているサーバーの名前を入力します。

      SQL Server Express の既定のインスタンスは (local)\sqlexpress です。

    • [サーバーにログオンする] セクションで、データにアクセスするためのオプションを選択します。 既定値は [Windows 認証 (統合セキュリティ) を使用する] です。

    • [データベース名の選択または入力] ボックスの一覧の [AdventureWorks2008] をクリックします。

    • [OK] をクリックしてウィザードに戻り、[次へ] をクリックします。

  7. 前の手順で [SQL Server 認証を使用する] を指定した場合は、重要情報を文字列に含めるか、または情報をアプリケーション コードに設定するかを指定するオプションを選択します。

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

  9. [コマンドの種類を選択します] ページで [SQL ステートメントを使用する] を選択し、[次へ] をクリックします。

  10. [SQL ステートメントの入力] ページで、AdventureWorks2008 データベースから売上データを取得するための次の Transact-SQL クエリを入力し、[完了] をクリックします。

    --SET DATEFORMAT mdy
    
    SELECT      
       PC.Name AS Category, PS.Name AS Subcategory, 
       DATEPART(yy, SOH.OrderDate) AS Year, 
       'Q' + DATENAME(qq, SOH.OrderDate) AS Qtr, 
       SUM(DET.UnitPrice * DET.OrderQty) AS Sales
    FROM Production.ProductSubcategory PS INNER JOIN
       Sales.SalesOrderHeader SOH INNER JOIN
          Sales.SalesOrderDetail DET ON SOH.SalesOrderID = DET.SalesOrderID INNER JOIN
          Production.Product P ON DET.ProductID = P.ProductID 
          ON PS.ProductSubcategoryID = P.ProductSubcategoryID INNER JOIN
       Production.ProductCategory PC ON PS.ProductCategoryID = PC.ProductCategoryID
    WHERE (SOH.OrderDate BETWEEN ('20020101') AND ('20031231'))
    GROUP BY DATEPART(yy, SOH.OrderDate), PC.Name, PS.Name, 
       'Q' + DATENAME(qq, SOH.OrderDate), PS.ProductSubcategoryID
    

    [クエリ ビルダー] ボタンをクリックし、クエリ ビルダーを使用してクエリを作成し、[クエリの実行] ボタンを使用してクエリを検証することもできます。

  11. [完了] をクリックします。

    データセット デザイナーに、DataTableDataTable1 の 定義が表示されます。このデータ テーブル内のフィールドの名前は、クエリの列および列の別名 (CategorySubcategoryYearQtr、および Sales) に基づいています。 レポートにデータをバインドする際は、これらのフィールドを使用します。

    注意

    データ テーブル内のフィールドを変更する必要がある場合は、[データセット デザイナー] ページで DataTable1 ヘッダーまたは DataTable1TableAdapter ヘッダーを右クリックします。[構成] を選択し、TableAdapter 構成ウィザードを再起動します。

  12. DataSet1 ファイルを保存します。

レポート ウィザードを使用して新しいレポート定義ファイルを追加するには

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

  2. [新しい項目の追加] ダイアログ ボックスで [レポート ウィザード] を選択します。

  3. [名前] に「Sales Orders.rdlc」と入力し、[追加] をクリックします。

    ダイアログ ボックスの背後にグラフィック デザイン画面が開きます。

  4. [データセットのプロパティ] ページの [データ ソース] ボックスの一覧で、作成した DataSet を選択します。

    [使用できるデータセット] ボックスの一覧が自動的に更新され、作成した DataTable が表示されます。

  5. [次へ] をクリックします。

  6. [フィールドの配置] ページで、次の操作を行います。

    1. [使用できるフィールド] から [Category][行グループ] ボックスにドラッグします。

    2. [使用できるフィールド] から [Subcategory][行グループ] ボックスの [Category] の下にドラッグします。

    3. [使用できるフィールド] から [Year][列グループ] ボックスにドラッグします。

    4. [使用できるフィールド] から [Qtr][列グループ] ボックスの [Year] の下にドラッグします。

    5. [使用できるフィールド] から [Sales][値] ボックスにドラッグします。

  7. [次へ] を 2 回クリックし、[完了] をクリックします。

    .rdlc ファイルが作成され、レポート デザイナーで開かれます。 デザインした Tablix がデザイン画面に表示されます。

レポートにタイトルを追加するには

  1. デザイナー画面上の Tablix をクリックして、列ハンドルおよび行ハンドルをテーブルの上部および横に表示します。

    注意

    Tablix の上部と横に表示されているグレーのボックスがハンドルです。ハンドルは、列グループ、行グループ、および Tablix 自体でさまざまな操作を実行するために使用します。Tablix の上部に表示されるハンドルは、列ハンドルです。Tablix の横に表示されるハンドルは、行ハンドルです。列ハンドルと行ハンドルが交差するハンドルは、コーナー ハンドルです。

  2. コーナー ハンドルをクリックして Tablix 全体を選択し、交差矢印を表示します。

  3. 交差矢印をドラッグして、デザイン画面上の Tablix を下へ移動します。

  4. ツールボックスから [テキスト ボックス] 項目をデザイン画面の Tablix の上部にドラッグし、交差矢印をドラッグして配置します。

  5. テキスト ボックスが選択されている状態で、「Company Sales」と入力します。 必要に応じて、テキスト ボックスの枠線をドラッグして拡げてください。

  6. テキスト ボックスが選択されている状態で、[レポートの書式] ツール バーの [太字] をクリックし、[フォント サイズ] ボックスで [16pt] を選択します。

  7. テキスト ボックスが選択されている状態で、[レポートの書式] ツール バーの [前景色] をクリックします。

  8. [色の選択] ダイアログ ボックスで、[ミッドナイト ブルー] を選択し、[OK] をクリックします。

フォームに ReportViewer コントロールを追加するには

  1. ソリューション エクスプローラーで、Form1.vb をクリックします。

  2. [表示] メニューの [デザイナー] をクリックします。

  3. ツールボックスの [レポート] セクションから ReportViewer コントロールをフォームにドラッグします。

  4. 右上隅のスマート タグ グリフをクリックして、ReportViewer1 コントロールのスマート タグ パネルを開きます。 [レポートの選択] ドロップダウン リストをクリックし、SimpleReport.Sales Orders.rdlc を選択します。

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

    このチュートリアルの後半では、アプリケーションをビルドしてレポートをいつでもフォーム内に表示することができます。 レポート デザインの増分変更が最終的なレポートに与える影響を確認する場合は、次の各手順の最後にアプリケーションをビルドしてレポートを表示します。

  6. (省略可) F5 キーを押してアプリケーションをビルドし、フォーム内にレポートを表示します。

通貨フィールドの書式を設定するには

  1. Sales Orders.rdlc ファイルの [レポート デザイナー] ウィンドウで、[Sum(Sales)] 値を持つ左上のセルを右クリックし、[テキスト ボックスのプロパティ] をクリックします。

  2. [数値] タブを選択します。

  3. [カテゴリ] ボックスの一覧の [通貨] を選択します。

  4. [記号] ボックスの一覧の [英語 (英国)] を選択します。

  5. [OK] をクリックし、ダイアログ ボックスを閉じます。

  6. 値が [Sum(Sales)] の他のすべてのセルについて、同じ手順を繰り返します。

  7. (省略可) F5 キーを押してアプリケーションをビルドし、レポートを表示します。 数値形式が変更されたことを確認します。 ここでは、通貨の換算は行われず、数値形式のみが変更されています。

Tablix レイアウトの書式を設定するには

  1. Sales Orders.rdlc ファイルの [レポート デザイナー] ウィンドウで、カーソルをドラッグして、Tablix の左上隅にある 2 つの空白セルを選択します。

  2. 選択したセルを右クリックし、[セルの結合] をクリックします。

  3. 結合されたセルを右クリックし、[テキスト ボックスのプロパティ] をクリックします。

  4. [罫線] タブをクリックします。 [プレビュー] 領域で、罫線トグル ボタンをクリックして、上部と左側の罫線を削除します。

  5. [OK] をクリックします。

  6. Tablix をクリックしてハンドルを表示します。 見出しが Subcategory の列で、列ハンドルの右側をドラッグして列幅を広げます。 列幅を広げることで、見出しテキストが折り返されるのを防ぐことができます。

  7. F5 キーを押してアプリケーションをビルドし、レポートを表示します。

参照

関連項目

ReportViewer.Drillthrough

LocalReport.SubreportProcessing

ReportViewer.Drillthrough

LocalReport.SubreportProcessing

概念

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

その他の技術情報

ReportViewer を使用してパラメーターでドリルスルー (RDLC) レポートを作成する (SSRS チュートリアル)

レポート デザイナーを使用したレポートのデザインと実装 (Reporting Services)

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