サブレポートフィールドは、レポートにサブレポートを挿入するために使用されます。サブレポートは、別のレポート(メインレポート)のフィールド内に配置された通常のレポートです。サブレポートは、通常、メインレポート内の現在の値に基づく詳細情報をマスター/詳細関係として表示する目的で設計されます。
次の例では、メインレポートにはカテゴリが表示され、詳細セクション内のサブレポートには現在のカテゴリに対する製品の詳細が表示されます。
Categories テーブルと Products テーブルに基づくマスター/詳細レポートを作成するには、カテゴリレポート(マスタービュー)と製品レポート(詳細ビュー)を作成する必要があります。
手順 1:マスターレポートの作成
-
FlexReport ウィザードを使用して、基本レポート定義を作成します。
- Northwind データベース(ComponentOne Samples\Common フォルダの C1NWind.mdb)から Categories テーブルを選択します。
- レポートに CategoryName および Description フィールドを挿入します。
- C1FlexReportDesigner アプリケーションで、[設計]ボタンをクリックして、レポートの編集を開始します。
- ページヘッダーおよびヘッダーセクションの Visible プロパティを False に設定します。
- 詳細セクションで、DescriptionCtl を選択し、それを CategoryNameCtl の真下に移動します。
- プロパティペインを使用して、外観の設定(Background)を変更します。
- [プレビュー]ボタンを選択すると、カテゴリレポートは次の図のように表示されます。
手順 2:詳細レポートの作成
-
C1FlexReportDesigner アプリケーションで[新しいレポート]ボタンをクリックし、FlexReport ウィザードを使用して基本レポート定義を作成します。
- C1NWind データベースから Products テーブルを選択します。
- レポートに、ProductName、QuantityPerUnit、UnitPrice、UnitsInStock、および UnitsOnOrder フィールドを挿入します。
- Report Designer で、[設計]ボタンをクリックして、レポートの編集を開始します。
- ページヘッダーおよびヘッダーセクションの Visible プロパティを False に設定します。
- 詳細セクションで、ヘッダーのラベルに合わせてコントロールを配列します。プロパティペインを使用して、外観の設定を変更します。
手順 3:サブレポートフィールドの作成
現在、C1FlexReportDesigner アプリケーションには、Categories Report と Products Report の 2 つのレポートがあります。次の手順では、サブレポートを作成します。
- Designer の[レポート]リストから、[Categories Report](マスターレポート)を選択します。
- 設計モードで、[挿入]タブの[フィールド]グループから[サブレポート]アイコンをクリックし、ドロップダウンメニューから[Products Report]を選択します。
- レポートの詳細セクションで、マウスポインタをクリックおよびドラッグして、サブレポートのフィールドを作成します。
手順 4:サブレポートとマスターレポートのリンク
マスター/詳細関係は、サブレポートフィールドの SubreportFilter プロパティで制御します。このプロパティには、フィルタ条件として評価されてサブレポートのデータソースに適用できる式を設定する必要があります。
Report Designer では、この式を自動的に作成できます。次の手順を実行します。
- サブレポートフィールドを右クリックし、メニューから[サブレポートのリンク]を選択します。
[サブレポートのリンク]ダイアログボックスが表示されます。ここで、リンク先のフィールドを選択できます。
設計領域のサブレポートフィールドは次のように表示されます。
- フィールドを選択して[OK]をクリックすると、Report Designer はリンク式を作成し、その式をサブレポートフィールドの SubreportFilter プロパティに割り当てます。この例では、式は次のようになります。
"[CategoryID] = '" & [CategoryID] & "'"