[{"id":"08e0fe96-3025-463b-bcee-87f4b29c462b","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"0d5035e7-1a53-4dc5-b32e-9ce261bfa47e","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"2fb2b485-f567-436c-9ca9-06dd71ceadb3","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"c1466f0c-9710-41d3-9812-c7321630328a","tags":[{"product":null,"links":null,"id":"e1d31134-0bda-4c05-bee0-b1f21f82940b","name":"new","color":"#00A273","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"b0e616b5-b520-405e-b108-e81363a8dd74","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"f5712fda-d364-4652-9783-3073e2560b97","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"8f03c498-1e02-459a-a6de-ee619033d6d2","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"2b701643-01a1-40e0-b49b-0a6e93c1f847","tags":[{"product":null,"links":null,"id":"e1d31134-0bda-4c05-bee0-b1f21f82940b","name":"new","color":"#00A273","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"07b4f367-7ddc-4c8a-932c-b180f112364e","tags":[{"product":null,"links":null,"id":"e1d31134-0bda-4c05-bee0-b1f21f82940b","name":"new","color":"#00A273","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]}]
マスター詳細レポートはSubreportコントロールを使用して作成できます。Subreportコントロールはマスターレポートに埋め込まれ、詳細レポートのプレースホルダーとして機能します。マスターレポートから詳細レポートに渡されたパラメータは、マスターレコードの各インスタンスの詳細をフィルタし、レコードを描画します。マスターと詳細の関係を確立するには、2つのレポートに共通のフィールドが必要であります。このフィールドは、マスターレポートから渡されたパラメーターに基づいて詳細レポートのデータをフィルタするために使用されます。
このチュートリアルは、ActiveReportsJSデザイナでSubreportを使用してマスター-詳細レポートを作成する手順について説明します。
このチュートリアルを完了すると、次のようなレポートが作成されます。
従業員の注文の詳細をテーブル形式で表示するレポートを作成します。
新しいレポートを作成します。デフォルトでは、空白の RDLレポート が作成されます。
データソースに接続します。
[データ] タブをクリックして、 [データソース] の [+ 追加] をクリックします。
[データソースの編集] ダイアログでは、次のURLをリモートJSONプロバイダの [エンドポイント] に指定します。
https://demodata.mescius.jp/northwind/odata/v1/Orders
[変更を保存] ボタンをクリックします。
データセットを追加します。
追加したデータソースの [新規データセット] をクリックします。
[新規データセット] ダイアログでは、 JSONパス に「$.value[*]
」を入力します。
フィールドを取得するには、 [検証] ボタンをクリックしてクエリを検証します。その後、 [変更を保存] ボタンをクリックします。
データソースへの接続とデータセットの追加については、データの連結を参照してください。
データセットのフィールドを展開して、 [フィールドを選択...] オプションを有効にします。
必要なフィールドを選択して、デザイン面にドラッグ&ドロップします。
列がフィールドにバインドされたテーブルが作成されます。 詳細行の上のヘッダー行は、自動的にラベルが記入されます。
または、最初に Table データ領域をレポートのデザイン面にドラッグ&ドロップして、フィールドを詳細行にドラッグ&ドロップすることもできます。
次の式「=Sum(Fields!Freight.Value)
」をフッタ行の右端のセルに入力します。これにより、テーブルは次のようになります。
詳細レポートに非表示のパラメータを追加しましょう。このパラメータは、詳細レポートのデータをフィルタするために、マスターレポートから渡されます。
従業員IDに基づいてデータをフィルタするレポートのパラメータを追加するには、次の手順に行います。
[データ] タブをクリックして、 [パラメータ] セクションの [追加] をクリックします。 レポートパラメータ1 というパラメータが追加されます。
レポートパラメータ1 をクリックしてパラメータのプロパティを編集します。
[データタイプ] プロパティを 「Integer」 に設定します。
パラメータの [非表示] プロパティを 「True」 に有効します。
詳細レポートのデータは、マスターレポートから渡された従業員IDパラメータに従ってフィルタする必要があります。
従業員IDのパラメータ(パラメータ1)に基づいてデータをフィルタするには、次の手順に行います。
テーブルを選択して、 [プロパティ] タブをクリックします。
[フィルタ] プロパティの [項目の表示] をクリックして、 [+項目の追加] を選択します。
フィルタのプロパティを表示するには、アイコンをクリックします。
[式] の横にあるラジオボタンをクリックして、 「EmployeeId」 を選択します。
[演算子] を 「Equal」 に設定します。
[値] の横にあるラジオボタンをクリックして、 「=Parameters!レポートパラメータ1.Value」 を入力します。
新しいレポートを作成します。デフォルトでは、空白の RDLレポート が作成します。
データソースに接続します。
[データ] タブをクリックして、 [データソース] の [+ 追加] をクリックします。
[データソースの編集] ダイアログで、次のURLをリモートJSONプロバイダの [エンドポイント] に指定します。
https://demodata.mescius.jp/northwind/odata/v1/Employees
データセットを追加します。
追加したデータソースの [新規データセット] をクリックします。
[新規データセット] ダイアログでは、 JSONパス に「$.value[*]
」を入力します。
データソースへの接続とデータセットの追加については、[データバインディング](Databinding)を参照してください。
マスターレポートを作成するには、Listデータ領域を使用します。Listデータ領域には、データを表示するためのTextBoxを数個と、詳細レポートを表示するためのSubreportコントロール1つを配置します。Listデータ領域は、含んでいるすべてのレポートコントロールにバインドされているデータを繰り返し表示します。
レポートコントロール一覧から List データ領域をデザイン面にドラッグ&ドロップします。
マスターレポートには、従業員の名前、役職、都市、国の情報が必要です。この情報を表示するには、3つのTextBoxコントロールをListコントロールにドラッグ&ドロップします。
詳細レポートをマスターレポートに埋め込むには、SubreportコントロールをListコントロールにドラッグ&ドロップします。次の画像のように、各コントロールの位置を調整します。
デザイン面に配置した各コントロールの階層が次のようになっていることを確認してください。階層は、デザイナの左上にある [エクスプローラ] をクリックすると表示することができます。
TextBox1 を選択して、 [共通] セクションの [値] プロパティに「="Name: " & Fields!LastName.Value & ", " & Fields!FirstName.Value
」を入力します。
TextBox2 を選択して、 [共通] セクションの [値] プロパティに「= "Title: " & Fields!Title.Value
」を入力します。
TextBox3 を選択して、 [共通] セクションの [値] プロパティに「=Fields!City.Value & ", " & Fields!Country.Value
」を入力します。
詳細レポートをマスターレポートに埋め込むには、次の手順を行います。
Subreportコントロールを選択します。
[プロパティ] タブで、 [レポートの名前] プロパティに、隣にあるドロップダウンから詳細レポートのレポート名を選択するか、または詳細レポートのレポート名を直接入力します。
マスターレポートから詳細レポートに渡されるパラメータ(レポートパラメータ1)をフィルタとして使用するには、Subreportコントロールの [レポートパラメータ] プロパティを次のように設定します。
[プロパティ] タブで、 [共通] セクションの [レポートパラメータ] プロパティを表示します。
隣にある [項目の表示] をクリックして、 [+項目の追加] を選択します。
パラメータのプロパティを表示するには、アイコンをクリックします。
パラメータ名 プロパティを「パラメータ1」に設定します。
[パラメータ1]の隣にある [値] プロパティに「=Fields!EmployeeId.Value
」の式を入力します。
上記のプロパティを設定した後、Subreportのレポートパラメータは次のようになります。
メモ: 詳細レポートのパラメータ名は、サブレポートのパラメータと一致する必要があります。
レポートコントロールの一覧から、TextBoxコントロールを選択し、先に配置したリストとテキストボックスよりも高い位置にドラッグ&ドロップします。これはタイトルになります。必要に応じてテーブルの位置を調整し、タイトルを配置するスペースを作ります。
タイトルの内側をクリックし、「従業員注文レポート(マスター詳細レポート)」とテキストを入力します。
メモ: 必要に応じて、レポートに配置する各コントロールのサイズや位置を調整してください。
[テキスト] セクションの [水平方向の整列] プロパティおよび [垂直方向の整列] プロパティを使用して、テキストの整列を設定します。
[背景] セクションの [背景色] プロパティを 「#f1f1f1」 に設定して、ページヘッダの背景色を設定します。
[テキスト] セクションの [フォント名] プロパティを 「Song」 に設定します。
[テキスト] セクションの [サイズ] プロパティを 「16」 に設定して、 [色] を 「#3da7a8」 に設定します。
[プレビュー] をクリックしてレポートの最終結果を表示します。マスターレポートから渡されたパラメータが、Subreportコントロールを使用して詳細を取得する方法を確認します。
レビューモードを終了するには、デザイナの左上にある [戻る] ボタンをクリックします。
[名前を付けて保存] をクリックして、レポートの名前を任意のものに変更し、 [保存] をクリックします。