チュートリアル : ローカル処理モードでのビジネス オブジェクト データ ソースと ReportViewer Windows フォーム コントロールの使用
このチュートリアルでは、Microsoft Visual Studio Windows フォーム アプリケーションのレポートでビジネス オブジェクトを使用してオブジェクト データ ソースを使用する方法について説明します。ビジネス オブジェクトとオブジェクト データ ソースの詳細については、「Binding to Business Objects」を参照してください。
Windows フォーム アプリケーション プロジェクトにレポートを追加するには、次の手順を実行します。この例では、Microsoft Visual C# でアプリケーションを作成します。
新しい Windows フォーム アプリケーション プロジェクトの作成
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスの [インストールされたテンプレート] ペインで [Visual C#] を選択し、[Windows フォーム アプリケーション] テンプレートを選択します。Visual Studio の起動設定によっては、[C#] ノードが [他の言語] に表示される場合もあります。
プロジェクト名として「BusinessObject」と入力し、[OK] をクリックします。
データ ソースとして使用するビジネス オブジェクトの作成
[プロジェクト] メニューの [新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで [クラス] を選択し、ファイル名として「BusinessObjects.cs」と入力して、[追加] をクリックします。
新しいファイルがプロジェクトに追加され、Visual Studio で自動的に開きます。
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; } }
[プロジェクト] メニューの [ソリューションのビルド] をクリックします。これにより、オブジェクトのアセンブリが作成され、レポートのデータ ソースとして後で使用できるようになります。
レポート ウィザードによるプロジェクトへのレポート追加
[プロジェクト] メニューの [新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで [レポート ウィザード] をクリックします。レポート名を入力して、[追加] をクリックします。
これにより、レポート ウィザードがデータ ソース構成ウィザードと共に起動します。
[データ ソースの種類を選択] ページで、[オブジェクト] を選択して [次へ] をクリックします。
[データ オブジェクトの選択] ページで、一覧に [Product] が表示されるまで [BusinessObject] のクラス階層を展開します。[Product] を選択して、[完了] をクリックします。
これでレポート ウィザードに戻ります。ソリューション エクスプローラーでプロジェクトを見ると、新しいデータ ソース オブジェクトが追加されていることがわかります。
[データセットのプロパティ] ページの [データ ソース] ボックスで、[グローバル] が選択されていることを確認します。
[使用できるデータセット] ボックスで、[Product] が選択されていることを確認します。
[次へ] をクリックします。
[フィールドの配置] ページで、次の操作を行います。
[使用できるフィールド] から [Name] を [行グループ] ボックスにドラッグします。
[使用できるフィールド] から [Price] を [値] ボックスにドラッグします。
[次へ] を 2 回クリックし、[完了] をクリックします。
.rdlc ファイルが作成され、レポート デザイナーで開かれます。作成した Tablix がデザイン画面に表示されます。
.rdlc ファイルを保存します。
レポートへの ReportViewer コントロールの追加
ソリューション エクスプローラーのデザイン ビューで、Windows フォームを開きます。フォーム名は、既定で Form1.cs になっています。
ツールボックスの [レポート] グループで、[ReportViewer] アイコンをフォームにドラッグします。
ReportViewer コントロールで右上隅のスマート タグ グリフをクリックして、スマート タグ パネルを開きます。
[レポートの選択] 一覧で、デザインしたレポートを選択します。レポート名は、既定で Report1.rdlc になっています。レポートで使用されている各オブジェクト データ ソースに対応して、ProductBindingSource という名前の BindingSource オブジェクトが自動的に作成されます。
開いているスマート タグ パネルで、[親コンテナーにドッキングする] をクリックします。
BindingSource オブジェクトへのデータ ソース インスタンスの指定
ソリューション エクスプローラーで、[Form1.cs] を右クリックし、[コードの表示] を選択します。
Form1.cs の部分クラス定義で、最初の行としてコンストラクターの前に次のコードを追加します。
// Instantiate the Merchant class. private Merchant m_merchant = new Merchant();
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 タスクのスマート タグ パネルの使用