SubReportコントロールは、別のレポートのデータを表示するためのプレイスホルダーです。サブレポートは、1つのデータ領域の中に異なるデータソースからのデータのグループを入れ子にする場合や、ある特定のサブレポートを複数のレポートで再利用する場合に役立ちます。
Subreportで使用することができる主なプロパティを説明します。すべてのプロパティを表示するには、プロパティモードを[詳細プロパティを表示]にする必要があります。
名前: まだレポートに使用されていない一意の名前を入力します。
レポートの名前: サブレポートとして使用するレポートファイルの名前をドロップダウンリストから選択します。
レポートパラメータ: サブレポートのレポートパラメータに設定するパラメータを追加します。パラメータ名はサブレポートのレポートパラメータ名と正確に一致する必要があります。
幅: 罫線の幅に設定する値をポイント単位で入力します。
スタイル: 罫線のスタイルを選択します。
色: カラーピッカー、標準色、Webカラーから罫線の色を示すカラーを選択します。
データが0件の場合のメッセージ: データ行がない場合、データ領域に表示するメッセージを設定します。
色: カラーピッカー、標準色、Webカラーからメッセージに使用するカラーを選択します。
スタイル: メッセージにフォントスタイルを適用します。次のスタイルを選択できます。
文字飾り: 線を使用してメッセージを装飾できます。以下のオプションを選択できます。
表示形式: ドロップダウンリストからメッセージの数値書式を選択します。
スタイルシートの継承: 親レポートのスタイルシートがサブレポートで使用されるかどうか設定します。
サブレポートのサブテーマ: 親レポートのテーマがサブレポートで使用されるかどうか設定します。
次の例では、Subreportコントロールを使用して、別の詳細レポートからのデータを表示するマスター詳細レポートを作成する方法を示します。マスター詳細レポートは、従業員の名前、役職、市、国などの基本情報とともに、詳細レポートから取得した注文一覧を表示します。
マスターレポートは、データを表示するためのTextBoxコントロールを含むListデータ領域を使用します。Listデータ領域は、含んでいるすべてのレポートコントロールにバインドされているデータを繰り返し表示します。マスターレポートは、詳細をフィルタリングするために、マスターレポートから詳細レポートにパラメータを渡します。
メモ:この例ではレポートファイルに、以下のようなデータソースを使用します。
https://demodata-jp.grapecity.com/northwind/odata/v1/Employees
https://demodata-jp.grapecity.com/northwind/odata/v1/Orders
最終的には次の画像のようなレポートとなります。
RDLレポートを作成し、Tableデータ領域をデザイナ面上にドラッグ&ドロップします。
データセットから、[OrderId]、[OrderDate]、[ShippedDate]、[RequiredDate]、[ShipVia]、および[Freight]のフィールドをドラッグしてTableデータ領域の詳細行にドロップします。詳細行の上のヘッダ行にラベルが自動的に表示されます。
テーブルのフッタ行の最後のセルを選択し、[値]プロパティに「=Sum(Fields!Freight.Value)
」の式を入力します。テーブルは、次の画像のようになります。
レポートにパラメータを追加するには、[データ]タブに移動し、[パラメータ]の隣にある[+ 追加]をクリックします。[Parameter1]というパラメータが追加されます。
[Parameter1]をクリックして、次のようにプロパティを設定します。
[データタイプ]プロパティを「Integer」に設定します。
[非表示]プロパティを「はい」に有効にします。
Tableデータ領域を選択し、[プロパティ]タブに移動します。
[フィルタ]プロパティで、[項目の表示]をクリックし、[+ 項目の追加]をクリックします。
表示される[[A]=[B]]の隣にあるアイコンをクリックして、[フィルタのプロパティ]を表示します。
[式]プロパティの隣にあるボタンをクリックしてフィールドのリストを表示し、「EmployeeId」を選択します。
[演算子]プロパティの隣にあるドロップダウンを開き、「Equal」を選択します。
[値]プロパティの隣にあるボタンをクリックして、「=Parameters!Parameter1.Value
」の式を入力します。
Listデータ領域をデザイナ面上にドラッグ&ドロップします。
3つのTextBoxコントロールをListデータ領域にドラッグ&ドロップします。
SubreportコントロールをListデータ領域にドラッグ&ドロップします。
Subreportコントロールを選択し、[レポートの名前]プロパティに、隣にあるドロップダウンから詳細レポートのレポート名を選択するか、または詳細レポートのレポート名を直接入力します。
詳細レポートに渡されるパラメータを使用するために、[レポートパラメータ]プロパティに移動します。
[レポートパラメータ]プロパティの隣にある[項目の表示]をクリックし、[+ 項目の追加]を選択します。
[パラメータ1]の隣にある[値]プロパティに「=Fields!EmployeeId.Value
」の式を入力します。
TextBox1を選択し、[値]プロパティに「="氏名:" & Fields!LastName.Value & ", " & Fields!FirstName.Value
」の式を入力します。
TextBox2を選択し、[値]プロパティに「= "役職:" & Fields!Title.Value
」の式を入力します。
TextBox3を選択し、[値]プロパティに「=Fields!City.Value & ", " & Fields!Country.Value
」の式を入力します。
レポートにタイトルを追加するには、TextBoxコントロールを先に配置したリストとテキストボックスよりも高い位置にドラッグ&ドロップします。
タイトルの内側をクリックし、「従業員注文レポート(マスター詳細レポート)」とテキストを入力します。
レポートに配置する各コントロールのサイズや位置を調整して、レポートの外観をカスタマイズします。
レポートをプレビューします。