V2J
V3.0JV2.2JV2.1JV2JV1J

SubReportを使ったレポート

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

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

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

Subreportを使用したマスター詳細レポート

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

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

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

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

  2. データソースに接続します。

    1. [データ]タブをクリックして、[データソース][+ 追加]をクリックします。

    2. [データソースの編集]ダイアログでは、次のURLをリモートJSONプロバイダの[エンドポイント]に指定します。

    https://demodata-jp.grapecity.com/northwind/odata/v1/Orders
    
    1. [変更を保存]ボタンをクリックします。
  3. データセットを追加します。

    1. 追加したデータソースの[新規データセット]をクリックします。

    2. [新規データセット]ダイアログでは、JSONパスに「$.value[*]」を入力します。

    3. フィールドを取得するには、[検証]ボタンをクリックしてクエリを検証します。その後、[変更を保存]ボタンをクリックします。

      データソースへの接続とデータセットの追加については、データの連結を参照してください。

データでバインドされたテーブルを作成する

  1. データセットのフィールドを展開して、[フィールドを選択…]オプションを有効にします。

    データセットのフィールドの選択

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

    デザイン面にテーブル形式のレポート

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

または、最初にTableデータ領域をレポートのデザイン面にドラッグ&ドロップして、フィールドを詳細行にドラッグ&ドロップすることもできます。

  1. 次の式「=Sum(Fields!Freight.Value)」をフッタ行の右端のセルに入力します。これにより、テーブルは次のようになります。

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

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

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

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

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

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

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

    パラメータのプロパティ

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

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

レポートパラメータ1のフィルタ

  1. テーブルを選択して、[プロパティ]タブをクリックします。

  2. [フィルタ]プロパティの[項目の表示]をクリックして、[+項目の追加]を選択します。

  3. フィルタのプロパティを表示するには、パラメータ1のフィルタアイコンをクリックします。

  4. [式]の横にあるラジオボタンをクリックして、「EmployeeId」を選択します。

  5. [演算子]「Equal」に設定します。

  6. [値]の横にあるラジオボタンをクリックして、「=Parameters!レポートパラメータ1.Value」を入力します。

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

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

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

  2. データソースに接続します。

    1. [データ]タブをクリックして、[データソース][+ 追加]をクリックします。

    2. [データソースの編集]ダイアログで、次のURLをリモートJSONプロバイダの[エンドポイント]に指定します。

    https://demodata-jp.grapecity.com/northwind/odata/v1/Employees
    
  3. データセットを追加します。

    1. 追加したデータソースの[新規データセット]をクリックします。

    2. [新規データセット]ダイアログでは、JSONパスに「$.value[*]」を入力します。

      データソースへの接続とデータセットの追加については、[データバインディング](Databinding)を参照してください。

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

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

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

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

  3. 詳細レポートをマスターレポートに埋め込むには、SubreportSubreport Toolbar IconコントロールをListコントロールにドラッグ&ドロップします。次の画像のように、各コントロールの位置を調整します。
    デザイナ面のコントロールの配置を示す画像

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

    エクスプローラを使用したコントロールの階層を示す画像

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

エクスプローラアイコン

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

Subreportを構成する

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

  1. Subreportコントロールを選択します。

  2. [プロパティ]タブで、[レポートの名前]プロパティに、隣にあるドロップダウンから詳細レポートのレポート名を選択するか、または詳細レポートのレポート名を直接入力します。
      マスターレポートから詳細レポートに渡されるパラメータ(レポートパラメータ1)をフィルタとして使用するには、Subreportコントロールの[レポートパラメータ]プロパティを次のように設定します。

  3. [プロパティ]タブで、[共通]セクションの[レポートパラメータ]プロパティを表示します。

  4. 隣にある[項目の表示]をクリックして、[+項目の追加]を選択します。

  5. パラメータのプロパティを表示するには、フィルタプロパティのアイコンアイコンをクリックします。

  6. パラメータ名プロパティを「パラメータ1」に設定します。

  7. [パラメータ1]の隣にある[値]プロパティに「=Fields!EmployeeId.Value」の式を入力します。

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

    Subreportのレポートパラメータ

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

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

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

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

カスタマイズされたマスターレポート

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

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

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

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

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

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

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

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

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