[]
        
(Showing Draft Content)

複数データセットを使ったレポート

マスター詳細レポートは、関連する詳細がマスターレコードごとに繰り返されるようにデータが表示されます。マスター詳細レポートでは、ネストされたデータ領域が異なるデータセットからデータを取得するケースも実現できます。

異なるデータセットにバインドしたネストされたデータ領域にデータを表示するには、マスターと詳細(親子)の関係を確立するために共通のフィールドは必要です。このフィールドは、親データ領域から渡された値に基づいて子データ領域のデータをフィルタするために使用されます。

このチュートリアルでは、2つの異なるデータセット(サプライヤーと製品)にバインドされた2つのネストされたTableデータ領域を使用します。 「SupplierId」は、両方のデータセットの共通フィールドであり、子テーブルのフィルターとしても機能します。

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

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

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

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

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

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

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

    Dataset_Suppliers:

    1. 追加したデータソースの**[新規データセット]をクリックして、[名前]「Dataset_Suppliers」**に設定します。

    2. **[新規データセット]**ダイアログでは、Uri/パスにリソース名を「Suppliers」として入力します。

    3. JSONパスに「$.value[*]」を入力します。

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

    Dataset_Products:
    別のデータセットを同じデータソースエンドポイントに追加します。

    1. **[新規データセット]**ダイアログでは、Uri/パスにリソース名を「Products」として入力します。

    2. JSONパスに「$.value[*]」を入力します。

    3. フィールドを取得するには、**[検証]ボタンをクリックしてクエリを検証します。その後、[変更を保存]**ボタンをクリックします。   データソースへの接続とデータセットの追加については、データの連結を参照してください。

親(マスター)テーブルを作成する

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

  2. 親テーブル(Table1)を選択して、データセットプロパティを「DataSet_Suppliers」に設定します。

  3. 詳細行の最初のセルに、次の式を入力します。
    ="会社名: " & Fields!CompanyName.Value

  4. ヘッダ行とフッタ行をテーブルから削除します。

  5. 詳細行のセルを結合して、会社名を行全体に表示します。

    これは、サプライヤーの情報を含む親テーブルのタイトルになります。

  6. 上記の行を選択した状態で、行ハンドルのプラス記号(+)をクリックして、詳細行を追加します。以下で説明するように、3つの詳細行を追加して、サプライヤーに関する詳細情報を表示します。

    1. 最初の行に「住所:」テキストを表示します。
    2. 中央の行に[ContactName]、[Address]および[City]を表示します。
    3. 最後の行に[ContactTitle]、[Country]および[PostalCode]を表示します。  

子(詳細)テーブルを作成する

  1. 親テーブル(Table1)では、前に追加した行の下に2つの新しい詳細行を追加します。

    これらの行には、以下の手順で説明するように、各サプライヤーの製品に関する情報が含まれます。

  2. 最初の行のセルを結合して、子テーブルのタイトルに「供給した製品」を入力します。

  3. 中央の行のセルを結合して、子テーブルを追加します。

  4. レポートコントロール一覧からTableデータ領域(Table2)を前の手順で追加した行の内側にドラッグ&ドロップします。これにより、親テーブルの行に子テーブルが含まれます。

  5. 子テーブル(Table2)を選択して、データセットプロパティを「DataSet_Products」に設定します。

  6. 次の画像のように、データセットのフィールドを展開して、テーブルにフィールドを追加します。

    - **メモ:**各製品の「UnitsInStock」と「TotalPrice」を表示する列をテーブルに追加しました。
    - テーブルのヘッダ行には、データセットフィールドのラベルが自動的に入力されます。
    - テーブルのフッタ行には、「=Sum(Fields!UnitsInStock.Value * Fields!UnitPrice.Value)」の式を使用して供給した製品の合計価格が表示されます。

上記の手順を実行した後、製品の詳細が各マスタレコード(サプライヤ)に対して繰り返されます。ただし、選択したサプライヤーの製品詳細のみが表示されるように、ネストされたテーブル(SupplierId)の共通フィールドを使用して子データにフィルタを追加する必要があります。

子テーブルにフィルタを追加する

  1. 子テーブル(Table2)を選択して、**[プロパティ]**ペインを選択します。

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

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

  4. **[フィルタのプロパティ]では、[式]の横にあるラジオボタンをクリックして、「SupplierId」**を選択します。

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

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

ページのヘッダを追加する

  1. デザイナの上部にある**[レポート]タブをクリックして、[ヘッダの追加]**オプションを選択します。

  2. TextBoxコントロール をヘッダ面にドラッグ&ドロップします。

  3. テキストボックス内をクリックして、「サプライヤーの製品詳細 (マスター-詳細レポート)」というテキストを入力します。

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

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

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

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

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

  4. **[テキスト]セクションの[色]**プロパティを「#3da7a8」に設定して、ページヘッダのテキストの色と、レポートの親(マスター)テーブルと子(詳細)テーブルのタイトルを設定します。

  5. **[テキスト]セクションの[サイズ]**プロパティを使用して、ページヘッダのテキストボックスを「16pt」と、テーブルのテキストボックスを「8pt」に設定します。

  6. テーブル内にテキストボックスの罫線プロパティを設定するには、**[罫線]セクションの[幅]プロパティを「0.25pt」、[スタイル]プロパティを「Solid」、[色]**プロパティを「Gainsboro」に設定します。

  7. 価格フィールドで通貨の表示形式を設定するには、価格フィールドを含むテキストボックスを選択し、**[テキスト]セクションのを[表示形式]プロパティを「通貨」**に設定します。

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

  1. **[プレビュー]**をクリックしてレポートの最終結果を表示します。

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

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