レッスン 10: 別のエンティティからのプロパティの継承
エンティティのプロパティを変更して、バインドされているエンティティのフィールドを継承するようにできます。たとえば、AdventureWorks2008R2 モデルでは、Sales Person エンティティは Employee エンティティにバインドされています。Sales Person (販売員) はすべて Employee (従業員) です。したがって、Sales Person エンティティに対して作業する際は、Employee フィールドも表示されると便利です。このレッスンでは、Sales Person エンティティが Employee フィールドを継承するように継承プロパティを設定した後、レッスン 9 およびレッスン 10 で行ったモデルの変更をレポート ビルダーで表示します。
継承プロパティを指定するには
ツリー ビューで、[Sales Person] エンティティを選択します。
[プロパティ] ウィンドウで、[Inheritance] プロパティを展開します。
[InheritsFrom] ドロップダウン ボタンをクリックし、[Employee] を選択します。
[Binding] ドロップダウン ボタンをクリックし、[FK_SalesPerson_Employee_SalesPersonID] をクリックします。
SalesPersonId 属性は、Sales Person エンティティを Employee エンティティにバインドするフィールドです。
[ファイル] メニューの [すべてを保存] をクリックします。
モデルを配置するには
- [ビルド] メニューの [AdventureWorks2008R2 の配置] をクリックします。
レポート モデルの変更をレポート ビルダー 1.0 で表示するには
[レポート ビルダー] を起動します。
[作業の開始] ペインで、[AdventureWorks2008R2] モデルを選択して [OK] をクリックします。
[エンティティ] ボックスで、[Sales Person] エンティティを選択します。
[フィールド] ボックスで、[Employee] エンティティのフィールド (National ID Number、Title、Hire Date、Birth Date など) が [Sales Person] エンティティのフィールド一覧に表示されていることを確認します。
[エンティティ] ボックスで、[Product] エンティティを選択します。
レッスン 9 の説明に従って Product Subcategory を一覧内で上に移動した場合、[フィールド] ボックスでは、Name フィールドの下のフィールドとして Product Subcategory および Product Category フィールドとして表示されます。
[Product] エンティティをデザイン領域にドラッグします。
[エンティティ] ボックスで、[Product Subcategory] および [Product Category] ロールが Product エンティティのロールとして表示されなくなったことに注目してください。
[Product Subcategory] フィールドを、デザイン領域内の Product グループの左にドラッグします。
[エンティティ] ボックスで、[Purchase Order Details] エンティティを選択します。
[Total Order Qty] フィールドを、デザイン領域内の Name フィールドの右にドラッグします。
[Total Rejected Qty] フィールドを、Total Order Qty フィールドの右にドラッグします。
[レポート] ツール バーで、[レポートの実行] をクリックします。
[Total Order Qty] 列で、Decal 1 の [62500] をクリックします。
クリックスルー レポートが表示されます。このクリックスルー レポートには、Decal 1 の Purchase Orders が表示されます。また、Order Date、Modified Date、Due Date、Product Name、Order Qty、Unit Price、および Line Total が表示されていることに注目してください。これらのフィールドは、モデル プロパティによっても表示が指定されているものです。
[ファイル] メニューの [終了] をクリックし、[いいえ] をクリックします。
レポート モデルの変更をレポート ビルダー 3.0 で表示するには
レポート マネージャーで、[レポート ビルダー] をクリックします。
注 レポート ビルダー 3.0 のスタンドアロン バージョンを使用することもできます。
[新しいレポートまたはデータセット] ダイアログ ボックスで、[空のレポート]、[作成] の順にクリックします。
レポート データ ペインで、[新規作成] をクリックし、[データ ソース] をクリックします。
[データ ソースのプロパティ] ダイアログ ボックスで、[共有接続またはレポート モデルを使用する] がオンになっていることを確認し、[参照] をクリックします。
[データ ソースの選択] ダイアログ ボックスの [名前] テキスト ボックスに、「https://localhost/reportserver」を URL として入力し、[開く] をクリックします。
[Models] フォルダーを展開し、[AdventureWorks2008R2]、[開く] の順にクリックします。
[OK] をクリックします。
既定の名前 DataSource1 を持つデータ ソースが [レポート データ] ペインに追加されます。
[DataSource1] を右クリックします。
[データ ソース] オプションに [AdventureWorks2008R2] が指定されていることを確認し、[クエリ デザイナー] をクリックします。
[エンティティ] ボックスで、[Sales Person] エンティティを選択します。
[フィールド] ボックスで、[Employee] エンティティのフィールド (National ID Number、Title、Hire Date、Birth Date など) が [Sales Person] エンティティのフィールド一覧に表示されていることを確認します。
[エンティティ] ボックスで、[Product] エンティティを選択します。
レッスン 9 の説明に従って Product Subcategory を一覧内で上に移動した場合、[フィールド] ボックスでは、Name フィールドの下のフィールドとして Product Subcategory および Product Category フィールドとして表示されます。
[Product] エンティティをデザイン領域にドラッグします。
[エンティティ] ボックスで、[Product Subcategory] および [Product Category] ロールが Product エンティティのロールとして表示されなくなったことに注目してください。
[Product Subcategory] フィールドを、デザイン領域内の Product グループの左にドラッグします。
[エンティティ] ボックスで、[Purchase Order Details] エンティティを選択します。
[Total Order Qty] フィールドを、デザイン領域内の Name フィールドの右にドラッグします。
[Total Rejected Qty] フィールドを、Total Order Qty フィールドの右にドラッグします。
レポートを表示するには、[実行] をクリックします。
[Total Order Qty] 列で、Decal 1 の [62500] をクリックします。
クリックスルー レポートが表示されます。このクリックスルー レポートには、Decal 1 の Purchase Orders が表示されます。また、Order Date、Modified Date、Due Date、Product Name、Order Qty、Unit Price、および Line Total が表示されていることに注目してください。これらのフィールドは、モデル プロパティによっても表示が指定されているものです。
注 レポート ビルダー 3.0 を使用してクリックスルー レポートを作成することはできません。ただし、レポート ビルダー 1.0 でクリックスルー レポートを作成した後に、レポート ビルダー 3.0 を使用してレポートを更新することはできます。
[レポート ビルダー] ボタン、[レポート ビルダーの終了] の順にクリックします。
このレポートを保存する必要はありません。
次の手順
データベースから直接使用できないアイテムもありますが、レポートを作成するときにその情報を使用したい場合は、頻繁に使用するアイテムを作成してモデルに格納できます。次のレッスンでは、新しいフィールドを作成します。詳細については、「レッスン 11 : 計算フィールドの作成」を参照してください。