次の方法で共有


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

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

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

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

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

  2. [新しいプロジェクト] ダイアログ ボックスの [インストールされたテンプレート] ペインで [Visual C#] を選択し、[Windows フォーム アプリケーション] テンプレートを選択します。Visual Studio の起動設定によっては、[C#] ノードが [他の言語] に表示される場合もあります。

  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. [データ ソースの種類を選択] ページで、[オブジェクト] を選択して [次へ] をクリックします。

  4. [データ オブジェクトの選択] ページで、一覧に [Product] が表示されるまで [BusinessObject] のクラス階層を展開します。[Product] を選択して、[完了] をクリックします。

    これでレポート ウィザードに戻ります。ソリューション エクスプローラーでプロジェクトを見ると、新しいデータ ソース オブジェクトが追加されていることがわかります。

  5. [データセットのプロパティ] ページの [データ ソース] ボックスで、[グローバル] が選択されていることを確認します。

  6. [使用できるデータセット] ボックスで、[Product] が選択されていることを確認します。

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

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

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

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

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

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

  10. .rdlc ファイルを保存します。

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

  1. ソリューション エクスプローラーのデザイン ビューで、Windows フォームを開きます。フォーム名は、既定で Form1.cs になっています。

  2. ツールボックス[レポート] グループで、[ReportViewer] アイコンをフォームにドラッグします。

  3. ReportViewer コントロールで右上隅のスマート タグ グリフをクリックして、スマート タグ パネルを開きます。

  4. [レポートの選択] 一覧で、デザインしたレポートを選択します。レポート名は、既定で Report1.rdlc になっています。レポートで使用されている各オブジェクト データ ソースに対応して、ProductBindingSource という名前の BindingSource オブジェクトが自動的に作成されます。

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

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

  1. ソリューション エクスプローラーで、[Form1.cs] を右クリックし、[コードの表示] を選択します。

  2. Form1.cs の部分クラス定義で、最初の行としてコンストラクターの前に次のコードを追加します。

    // 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 キーを押してアプリケーションを実行し、レポートを表示します。

参照

関連項目

ReportViewer.Drillthrough

LocalReport.SubreportProcessing

ReportViewer.Drillthrough

LocalReport.SubreportProcessing

概念

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

その他の技術情報

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