チュートリアル : ローカル処理モードでのビジネス オブジェクト データ ソースと ReportViewer Windows フォーム コントロールの使用

このチュートリアルでは、Microsoft Visual Studio 2008 Windows アプリケーションのレポートでビジネス オブジェクトを使用してオブジェクト データ ソースを使用する方法について説明します。ビジネス オブジェクトとオブジェクト データ ソースの詳細については、「ビジネス オブジェクトへのバインディング」を参照してください。

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

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

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

  2. [新しいプロジェクト] ダイアログ ボックスの [Visual C#] で、Windows アプリケーション テンプレートを選択します。

  3. プロジェクト名として「BusinessObject」と入力し、[OK] をクリックします。

データ ソースとして使用するビジネス オブジェクトの作成

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

  2. [新しい項目の追加] ダイアログ ボックスで [クラス] を選択し、ファイル名として「BusinessObjects.cs」と入力して、[追加] をクリックします。新しいファイルがプロジェクトに追加され、Visual Studio で自動的に開きます。

  3. BusinessObjects.cs の既定のコードを、次のコードに置換します。

    using System;
    using System.Collections.Generic;
    
    // Define the Business Object "Product" with two public properties
    //    of simple datatypes.
    public class Product {
        private string m_name;
        private int m_price;
    
        public Product(string name, int price) {
            m_name = name;
            m_price = price;
        }
    
        public string Name {
            get {
                return m_name;
            }
        }
    
        public int Price {
            get {
                return m_price;
            }
        }
    }
    
    // Define Business Object "Merchant" that provides a 
    //    GetProducts method that returns a collection of 
    //    Product objects.
    
    public class Merchant {
        private List<Product> m_products;
    
        public Merchant() {
            m_products = new List<Product>();
            m_products.Add(new Product("Pen", 25));
            m_products.Add(new Product("Pencil", 30));
            m_products.Add(new Product("Notebook", 15));
        }
    
        public List<Product> GetProducts() {
            return m_products;
        }
    }
    
  4. [プロジェクト] メニューの [ソリューションのビルド] をクリックします。これにより、オブジェクトのアセンブリが作成され、レポートのデータ ソースとして後で使用できるようになります。

プロジェクトへのレポートの追加

  1. プロジェクトまたはプロジェクト項目がソリューション エクスプローラで選択されていることを確認します。

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

  3. [新しい項目の追加] ダイアログ ボックスで [レポート] をクリックします。レポート名を入力して、[追加] をクリックします。レポートがプロジェクトに追加され、レポート デザイナで自動的に開きます。レポート名は、既定で Report1.rdlc になります。

データ ソース構成ウィザードを使用したデータ ソースの作成

  1. プロジェクトまたはプロジェクト項目がソリューション エクスプローラで選択されていることを確認します。

  2. [データ] メニューの [新しいデータ ソースの追加] をクリックします。これにより、データ ソース構成ウィザードが起動します。

  3. [データ ソースの種類を選択] ページで、[オブジェクト] を選択して [次へ] をクリックします。

  4. データ ソース構成ウィザードに、プロジェクトの既存のクラスが一覧表示されます。一覧に [Product] が表示されるまで [BusinessObjects] のクラス階層を展開します。[Product] を選択して [次へ] をクリックし、[完了] をクリックします。

    ウィザードが閉じると、新しいデータ ソース オブジェクトが [データ ソース] ウィンドウに表示されます。

レポートのデザイン

  1. レポートをデザイン モードで開いた状態で、ツールボックスを開きます。ツールボックスから、テーブル コントロールをレポートにドラッグします。レポートのデザイン ビュー ウィンドウにテーブル コントロールが表示されます。点線の背景はレポート本文の寸法を表し、テーブル コントロールのサイズと位置は変更することができます。

  2. [データ ソース] ウィンドウから、[Product] データ ソースの [Name] フィールドをテーブルの詳細行の最初の列にドラッグします。詳細行は中央の行です。詳細行を指定すると、ヘッダー行が自動的に入力されます。

    [!メモ]

    [データ ソース] ウィンドウが表示されていない場合は、[データ] メニューの [データ ソースの表示] をクリックします。

  3. [Price] フィールドを 2 列目の詳細行にドラッグして、[Name] フィールドの横になるようにします。必要に応じて、左側のテーブル ヘッダー アイコンをクリックしてテーブルのヘッダー行を選択し、太字フォント スタイルを適用します。

  4. 使用されていない 3 番目の列を削除します。3 番目の列をクリックして、ヘッダー バーをクリックし、Del キーを押します。

  5. レポートにタイトルを追加するには、ツールボックスを開いて、テキスト ボックス コントロールをレポートにドラッグします。テキスト ボックスをテーブルの上部に配置します。レポート名として「Products」と入力します。

  6. (省略可) フォント サイズとフォント スタイルをテキストに適用して、タイトルが目立つようにします。

レポートへの ReportViewer コントロールの追加

  1. 自動的に生成された Windows アプリケーション フォームをデザイン ビューで選択します。フォーム名は、既定で Form1.cs になっています。

  2. ツールボックスを開きます。ツールボックス[データ] ノードを展開し、[ReportViewer] アイコンをフォームにドラッグします。フォームを展開し、必要に応じて ReportViewer の位置を変更します。

  3. ReportViewer コントロールを選択し、右上隅の三角形をクリックして、スマート タグ パネルを開きます。[レポートの選択] ドロップダウン リストをクリックし、デザインしたレポートを選択します。レポート名は、既定で Report1.rdlc になっています。レポートで使用されている各オブジェクト データ ソースに対応して、BindingSource が自動的に作成されます。

BindingSource オブジェクトへのデータ ソース インスタンスの指定

  1. Visual Studio フォームを右クリックして、ショートカット メニューから [コードの表示] をクリックします。

  2. Form1.cs で、クラスの先頭に次のコードを追加します。public partial class Form1 : Form { ステートメントの後、コンストラクタの前で最初の行を使用できます。

    // Instantiate the Merchant class.
    private Merchant m_merchant = new Merchant();
    
  3. Form1_Load() メソッドで、RefreshReport 呼び出しの前に、最初の行として次のコードを追加します。

    // Bind the Product collection to the DataSource.
    this.ProductBindingSource.DataSource = m_merchant.GetProducts();
    

アプリケーションの実行

  • F5 キーを押してアプリケーションを実行し、レポートを表示します。

参照

リファレンス

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

概念

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

その他のリソース

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