サブレポート (レポート ビルダー 3.0 および SSRS)

サブレポートは、メインのレポート本文内に別のレポートを表示するレポート アイテムです。概念上、レポート内のサブレポートは Web ページ内のフレームとほぼ同じです。これは、レポートをレポート内に埋め込むために使用されます。サブレポートには、任意のレポートを使用できます。サブレポートとして表示されるレポートは、レポート サーバー上に保存され、通常は親レポートと同じフォルダーに置かれます。親レポートからサブレポートにパラメーターを渡すようにも設定できます。パラメーターを使用してサブレポートの各インスタンスのデータをフィルター処理することにより、サブレポートをデータ領域内で繰り返し使用することができます。

サブレポート

この図の Sales Order メイン レポートに表示されている連絡先情報は、実際には Contacts サブレポートから取得されたものです。

注意

レポート定義 (.rdl) は、Business Intelligence Development Studio のレポート ビルダー 3.0 およびレポート デザイナーで作成および変更できます。これらの作成環境では、レポートおよび関連アイテムの作成方法、開く方法、および保存方法が異なります。詳細については、microsoft.com Web サイトの「レポート デザイナーとレポート ビルダー 3.0 でのレポートのデザイン (SSRS)」を参照してください。

サブレポートと入れ子になったデータ領域の比較

サブレポートを使用してさまざまなデータ グループを表示しようと考えている場合は、代わりにテーブル、マトリックス、グラフなどのデータ領域を使用することを検討してください。データ領域を使用しているレポートの方が、サブレポートを使用しているレポートよりもパフォーマンスが優れている可能性があります。

同じデータ領域内の同じデータ ソースから取得されるデータ グループを入れ子にする場合は、データ領域を使用してください。同じデータ領域内の異なるデータ ソースから取得されるデータのグループを入れ子にしたり、複数の親レポートで同じサブレポートを再利用したり、別のレポート内にスタンドアロンのレポートを表示する場合は、サブレポートを使用してください。たとえば、別のレポートの本文内に複数のサブレポートを配置して、"抄録ファイル" を作成することもできます。

データ領域はサブレポートと同じ機能の多くが提供され、柔軟性も同等ですが、パフォーマンスの点で優れています。サブレポートは、それぞれのインスタンスが個別のレポートとして処理されるので、レポート サーバーのパフォーマンスに影響することがあります。詳細については、「データ領域の入れ子化 (レポート ビルダー 3.0 および SSRS)」を参照してください。

サブレポートでのパラメーターの使用

親レポートからサブレポートにパラメーターを渡すには、サブレポートとして使用するレポートでレポート パラメーターを定義します。親レポートにサブレポートを配置するときに、レポート パラメーターと、親レポートからサブレポート内のレポート パラメーターに渡す値を選択できます。

注意

サブレポートから選択するパラメーターは、クエリ パラメーターではなくレポート パラメーターです。パラメーターの詳細については、「パラメーターを使用した他のレポートへの接続 (レポート ビルダー 3.0 および SSRS)」を参照してください。

サブレポートは、レポート本文内またはデータ領域内に配置できます。データ領域にサブレポートを配置する場合、同じサブレポートがグループのインスタンスまたはデータ領域の行ごとに配置されます。グループまたは行からサブレポートに値を渡すには、サブレポートの値のプロパティで、サブレポート パラメーターに渡す値を含むフィールド用のフィールド式を使用します。

サブレポートの操作方法の詳細については、「サブレポートおよびパラメーターを追加する方法 (レポート ビルダー 3.0 および SSRS)」を参照してください。

サブレポートの名前と場所の指定

同じレポート サーバー上の異なるフォルダーにあるサブレポートを指定するようにメイン レポートを設定できます。

サブレポートを指定する構文は、レポート サーバーがネイティブ モードで動作しているか、SharePoint 統合モードで動作しているかによって異なります。詳細については、「外部アイテムへのパスの指定 (レポート ビルダー 3.0 および SSRS)」を参照してください。

レポート ビルダーでメイン レポートのサブレポートをプレビューするには、両方のレポートが同じレポート サーバーに存在するか、サブレポートの完全なパスを指定する必要があります。