GrapeCity ActiveReports for .NET 16.0J
チュートリアル4: マスター - 詳細レポートの作成
はじめに > チュートリアル4: マスター - 詳細レポートの作成

マスター詳細レポートは、関連するデータを使用した単純なレポートです。データはマスターデータと詳細データに分かれています。マスターデータから詳細データを分離するには、データ領域内で詳細データをグループ化する方法と、個別に詳細レポートを作成し、それをサブレポート(Subreport)を使用して埋め込む方法があります。

マスター詳細レポートはSubreportコントロールを使用して作成できます。Subreportコントロールはマスターレポートに埋め込まれ、詳細レポートのプレースホルダーとして機能します。マスターレポートから詳細レポートに渡されたパラメータは、詳細レポートのデータセットをフィルタし、レコードを描画します。マスターと詳細の関係を確立するには、2つのレポートに共通のフィールドが必要であります。このフィールドは、マスターレポートから渡されたパラメーターに基づいて詳細レポートのデータをフィルタするために使用されます。

このチュートリアルは、ActiveReport WebデザイナでSubreportを使用してマスター-詳細レポートを作成する手順について説明します。

このチュートリアルを完了すると、次のようなレポートが作成されます。

An Example for Master Detail Report using a Subreport

Webデザイナにアクセスする

[ユーザーフォルダ]\WebSamples\WebDesigner_MVCに格納されたWebDesigner_MVCサンプルを実行します。

Webデザイナがブラウザで開かれ、レポートのデザインが可能になります。デフォルトでは、空白のRDLレポートが表示されます。

詳細レポート(Subreport)を作成する

従業員の注文の詳細をテーブル形式で表示するレポートを作成します。

レポートにデータをバインドする

  1. データソースを追加する

    1. データタブを開き、[データソース]の横の[+ 追加]アイコンをクリックします。

    2. [データソースエディタ]ダイアログで、[名前]「Orders」と入力します。

    3. [種類]のドロップダウンリストを開き、「JSON Provider」を選択します。

    4. [JSONデータ形式]「外部ファイルまたはURL」を選択します。

    5. [ファイル/URLの入力]に「https://demodata-jp.grapecity.com/northwind/odata/v1/Orders」と入力します。

    6. [テスト接続]をクリックしてデータソースへの接続をテストし、[追加]をクリックします。

  2. データセットを追加する

    1. 追加したデータソースの横にある[データセットの編集]をクリックします。

    2. [データセットの編集]ダイアログで、データセットの名前を入力し、[クエリ]「$.value[*]」と入力します。

    3. [検証]をクリックしてバウンドフィールドを取得し、[OK]をクリックしてデータセットを追加します。

Tableデータ領域にデータをバインドする

  1. データセットの横の[フィールドを選択]アイコンをクリックします。

    Selecting dataset fields

  2. 必要なフィールドを選択し、レポートのデザイン面にドラッグ&ドロップします。

    Table with selected fields

    列がフィールドにバインドされたテーブルが作成されます。詳細行のラベルは自動的にヘッダ行に追加されます。

または、最初にTableデータ領域をデザイナ面上にドラッグ&ドロップし、選択したフィールドを詳細行にドラッグ&ドロップすることもできます。
フッタ行の右端のセルに「{Sum(Freight)}」式を入力します。これにより、テーブルは次のようになります。

Table Footer Showing Aggregate

レポートにパラメータを追加する

詳細レポートに非表示のパラメータを追加します。このパラメータは、詳細レポートのデータをフィルタするために、マスターレポートから渡されます。

従業員IDに基づいてデータをフィルタするレポートのパラメータを追加するには、次の手順を行います。

  1. [データ]タブをクリックして、[パラメータ]セクションの[追加]をクリックします。 レポートパラメータ1というパラメータが追加されます。

  2. レポートパラメータ1をクリックしてパラメータのプロパティを編集します。

  3. [データタイプ]プロパティを「Integer」に設定します。

  4. パラメータの[非表示]プロパティを「True」に有効します。

    Parameter properties

レポートにデータを管理する

詳細レポートのデータは、マスターレポートから渡された従業員IDパラメータに従ってフィルタする必要があります。
従業員IDのパラメータ(レポートパラメータ1)に基づいてデータをフィルタするには、次の手順を行います。

Filter for Parameter1

  1. テーブルを選択して、[プロパティ]タブをクリックします。
  2. [データ]セクションの[フィルタ]プロパティの横の[+ 追加]アイコンをクリックします。
  3. [+ 追加]ボタンをクリックし、リストから[EmployeeId]を選択します。
  4. 「=」記号の右側にあるテキスト領域をクリックして、[レポートパラメータ1]を選択します。    

マスター詳細レポートを作成する

レポートにデータをバインドする

  1. 新しいレポートを作成します。デフォルトでは、空白の RDLレポート が作成します。

  2. データソースを追加する

    1. データタブを開き、[データソース]の横の[+ 追加]アイコンをクリックします。

    2. [データソースエディタ]ダイアログで、[名前]「Employees」と入力します。

    3. [種類]のドロップダウンリストを開き、「JSON Provider」を選択します。

    4. [JSONデータ形式]「外部ファイルまたはURL」を選択します。

    5. [ファイル/URLの入力]に「https://demodata-jp.grapecity.com/northwind/odata/v1/Employees」と入力します。

    6. [テスト接続]をクリックしてデータソースへの接続をテストし、[追加]をクリックします。

  3. データセットを追加する

    1. 追加したデータソースの横にある[データセットの編集]をクリックします。

    2. [データセットの編集]ダイアログで、データセットの名前を入力し、[クエリ]「$.value[*]」と入力します。

    3. [検証]をクリックしてバウンドフィールドを取得し、[OK]をクリックしてデータセットを追加します。

マスターレポートのレイアウトを作成する

マスターレポートを作成するには、Listデータ領域を使用します。Listデータ領域には、データを表示するためのTextBoxを数個と、詳細レポートを表示するためのSubreportコントロール1つを配置します。Listデータ領域は、含んでいるすべてのレポートコントロールにバインドされているデータを繰り返し表示します。

  1. レポートコントロール一覧からListデータ領域List Toolbar Iconをデザイン面にドラッグ&ドロップします。

  2. マスターレポートには、従業員の名前、役職、都市、国の情報が必要です。この情報を表示するには、3つのTextBoxコントロールをListコントロールにドラッグ&ドロップします。

  3. 詳細レポートをマスターレポートに埋め込むには、SubreportSubreport Toolbar IconコントロールをListコントロールにドラッグ&ドロップします。次の画像のように、各コントロールの位置を調整します。
    An image showing the arrangement of controls on the designer area

    デザイン面に配置した各コントロールの階層が次のようになっていることを確認してください。階層は、デザイナの左上にある[エクスプローラ]Report Explorer Iconをクリックすると表示することができます。

    An image showing the hierarchy of controls using Report Explorer

レポートコントロールにデータをバインドする

Report Explorer Icon

  1. TextBox1を選択して、[共通]セクションの[値]プロパティに「Name: {FirstName} {LastName}」を入力します。 
  2. TextBox2を選択して、[共通]セクションの[値]プロパティに「Title: {Title}」を入力します。
  3. TextBox3を選択して、[共通]セクションの[値]プロパティに「{City}, {Country}」を入力します。

Subreportを構成する

詳細レポートをマスターレポートに埋め込むには、次の手順を行います。

  1. Subreportコントロールを選択します。
  2. [プロパティ]タブで、[レポートの名前]プロパティに、隣にあるドロップダウンから詳細レポートのレポート名を選択するか、または詳細レポートのレポート名を直接入力します。

マスターレポートから詳細レポートに渡されるパラメータ(レポートパラメータ1)をフィルタとして使用するには、Subreportコントロールの[レポートパラメータ]プロパティを次のように設定します。

  1. [プロパティ]タブで、[共通]セクションの[レポートパラメータ]プロパティを表示し、隣にある[+項目の追加]を選択します。

  2. [値]フィールドに「{EmployeeId}」式を入力します。

    上記のプロパティを設定した後、Subreportのレポートパラメータは次のようになります。

    Report Parameter for Subreport

    メモ:詳細レポートのパラメータ名は、サブレポートのパラメータと一致する必要があります。

レポートにタイトルを追加する

  1. レポートコントロールの一覧から、TextBoxTextbox Toolbar Iconコントロールを選択し、先に配置したリストとテキストボックスよりも高い位置にドラッグ&ドロップします。これはタイトルになります。必要に応じてテーブルの位置を調整し、タイトルを配置するスペースを作ります。
  2. タイトルの内側をクリックし、「従業員注文レポート(マスター詳細レポート)」とテキストを入力します。

マスターレポートの外観をカスタマイズする

Customized Master Report with Subreport

メモ:必要に応じて、レポートに配置する各コントロールのサイズや位置を調整してください。

  1. [テキスト]セクションの[水平方向の整列]プロパティおよび[垂直方向の整列]プロパティを使用して、テキストの整列を設定します。

  2. [背景]セクションの[背景色]プロパティを「#f1f1f1」に設定して、ページヘッダの背景色を設定します。

  3. [テキスト]セクションの[フォント名]プロパティを「Song」に設定します。

  4. [テキスト]セクションの[サイズ]プロパティを「16」に設定して、[色]「#3da7a8」に設定します。

マスターレポートを表示/保存する

  1. [プレビュー]Preview Buttonをクリックしてレポートの最終結果を表示します。マスターレポートから渡されたパラメータが、Subreportコントロールを使用して詳細を取得する方法を確認します。

  2. レビューモードを終了するには、デザイナの左上にある[戻る]ボタンをクリックします。

  3. [名前を付けて保存]をクリックして、レポートの名前を任意のものに変更し、[保存]をクリックします。