次の方法で共有


チュートリアル : ローカル処理モードでの ReportViewer Web サーバー コントロールとデータベースのデータ ソースの使用法

このチュートリアルでは、Microsoft Visual Studio 2008 ASP.NET Web サイトのレポート作成方法と、ユーザーがレポートを表示できるように Web ページに ReportViewer コントロールを追加する方法について説明します。

前提条件

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

ASP.NET Web ページを作成する権限と、Microsoft Internet Information Services (IIS) バージョン 5.0 以降を実行しているサーバーへのアクセス権も持っている必要があります。

コンピュータで次の手順を実行し、Visual Studio 2008 テンプレートを使用して、作成したレポートを表示するように構成した ReportViewer コントロールで ASP.NET Web ページを作成します。この例では、Microsoft Visual Basic でアプリケーションを作成します。

新しい Web サイトの作成

  1. [ファイル] メニューの [新規作成] をポイントし、[Web サイト] をクリックします。

  2. [新しい Web サイト] ダイアログ ボックスで、[ASP.NET Web サイト] を選択します。

  3. [言語] リストで、[Visual Basic] を選択して、[OK] をクリックします。

  4. [場所] ボックスで [HTTP] が選択されていない場合は選択し、[参照] をクリックして新しいフォルダに移動します。

  5. [場所の選択] ダイアログ ボックスで [ローカル IIS] をクリックし、Web サイトのルート ディレクトリに移動します。

  6. [新しい Web アプリケーションの作成] ボタンをクリックして新しいフォルダを作成し、名前を入力します。Enter キーを押します。

  7. [開く] をクリックします。

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

    Web サイト プロジェクトが開き、Default.aspx Web ページが表示されます。

  9. ソリューション エクスプローラで、Default.aspx が強調表示されていることを確認します。

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

    Web サイトの既定のページを変更する準備ができました。

DataSet の追加による、データ接続と DataTable の定義

  1. [Web サイト] メニューの [新しい項目の追加] をクリックします。

  2. [新しい項目の追加] ダイアログ ボックスで、[データセット] をクリックします。[追加] をクリックします。App_Code フォルダへの項目の追加を確認するメッセージが表示されたら、[はい] をクリックします。新しい XSD ファイルである DataSet1.xsd がプロジェクトに追加され、データセット デザイナが開き、TableAdapter 構成ウィザードが起動します。

  3. SQLExpress を使用して AdventureWorks をインストールした場合は、[データ接続の選択] ページに、選択できる既存のデータ接続 sqlexpress.AdventureWorks.dbo が表示される場合があります。この場合は手順 6. に進みます。それ以外の場合は、[新しい接続] をクリックします。

  4. [データ ソース] ダイアログ ボックスで [Microsoft SQL Server (Sql Client)] を選択します。

  5. [サーバー名] ダイアログ ボックスに AdventureWorks サンプル データベースが配置されているサーバー名を入力します。たとえば、SQL Server Express の既定のインスタンス名は (local)\sqlexpress です。サーバー名を入力したら、データベースのドロップダウン リストで [AdventureWorks] を選択し、[OK] をクリックします。

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

  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. [生成するメソッドの選択] ページで、既定のとおり [DataTable にデータを格納する] では [メソッド名]: [Fill] および [DataTable を返す] では [メソッド名]: [GetData] を受け入れます。[次へ] をクリックします。

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

    レポート データ ソースとして、ADO.NET DataTable の設定が完了しました。

  12. Visual Studio の [データセット デザイナ] ページでは、追加した DataTable が表示され (既定の名前は DataTable1)、クエリを定義したことによる列がリストされます。[データ] メニューで [データのプレビュー] をクリックして [プレビュー] ボタンをクリックし、クエリ結果をチェックします。

レポートのデザイン

  1. [Web サイト] メニューの [新しい項目の追加] をクリックします。

  2. [新しい項目の追加] ダイアログで [レポート] テンプレートを選択し、レポート ファイル名を入力してから [追加] をクリックします。これにより、レポート定義ファイル (既定は Report.rdlc) が作成され、レポート デザイナが起動し、[Web サイト データ ソース] ウィンドウが表示されます。

  3. ツールボックスを開きます。テキスト ボックスをクリックし、次にレポート デザイン画面をクリックします。

  4. テキスト ボックスに「# of Employees per Shift per Dept」というレポート タイトルを入力します。必要に応じてテキスト ボックスを拡張します。

  5. マトリックス レポート アイテムを、ツールボックスからレポートのテキスト ボックスの下にドラッグします。点のある白い背景がレポート ページです。ページ上でマトリックスの位置を調整するには、左隅をクリックしてマトリックスを選択し、ドラッグするか方向キーを使用して必要に応じてアイテムを移動します。

  6. [Web サイト データ ソース] ウィンドウで DataTable1 ノードを展開してクエリの列を表示します。Dept を、[行] ボックスのマトリックスの最初の列の 2 番目の行にドラッグします。

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

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

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

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

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

  12. [OK] をクリックして [マトリックスのプロパティ] ダイアログ ボックスを閉じます。

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

  14. 既定の Sum 集計関数を編集して、Count に変更します。[OK] をクリックします。

  15. [OK] をクリックして [テキスト ボックスのプロパティ] ダイアログ ボックスを閉じます。

  16. [ファイル] メニューの [すべてを保存] をクリックします。

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

  1. ソリューション エクスプローラDefault.aspx を右クリックし、[ビュー デザイナ] をクリックします。

  2. ツールボックス ウィンドウを開きます。[データ] グループから ReportViewer コントロールをページにドラッグします。

  3. [ReportViewer タスク] のスマート タグ パネルが開いていない場合は、Web ページの ReportViewer コントロールの右上隅にある三角形をクリックして開きます。[レポートの選択] ボックスで Report.rdlc の完全に修飾されたファイル名を選択します。

    レポートを選択すると、レポートで使用するデータ ソースのインスタンスが自動的に作成されます。コードが生成され、各 DataTable (およびその DataSet コンテナ) と、レポートで使用される各データ ソースに対応する ObjectDataSource コントロールのインスタンスが生成されます。このデータ ソース コントロールは自動的に構成されます。

[!メモ]

基になるデータ ソースがデータベースまたは他の厳密に型指定されているデータ ストアである場合でも、ASP.NET で ObjectDataSource コントロールを使用し、SqlDataSource コントロールを使用しない理由については、「レポートのデータ ソースの作成」を参照してください。

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

  1. ページを実行するには、デバッグを行わない場合は Ctrl キーを押しながら F5 キーを押します。デバッグを行う場合は F5 キーを押します。

    ビルド プロセスの一環として、レポートがコンパイルされ、エラー (レポートで使用された式の構文エラーなど) が発生した場合、タスク一覧にそのエラーが追加されます。

    Web ページがブラウザに表示されます。ReportViewer コントロールによってレポートが表示されます。ツール バーを使用してレポート全体を参照したり、ズームしたり、Excel にエクスポートしたりできます。

  2. ブラウザを閉じます。

参照

リファレンス

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

概念

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

その他のリソース

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