Subreport fields are used to insert subreports in a report. Subreports are regular reports contained in a field in another report (the main report). Subreports are usually designed to display detail information based on a current value in the main report, in a master-detail scenario.
In the following example, the main report contains categories and the subreport in the Detail section contains product details for the current category:
To create a master-detail report based on the Categories and Products tables, you need to create a Categories report (master view) and a Products report (details view).
Step 1: Create the master report
- Create a basic report definition using the FlexReport Wizard.
- Select the Categories table from the Northwind database (C1NWind.mdb located in the ComponentOne Samples\Common folder).
- Include the CategoryName and Description fields in the report.
- In the C1FlexReportDesigner application, click the Design button to begin editing the report.
- Set the Page Header and Header section's Visible property to False.
- In the Detail section, select the DescriptionCtl and move it directly below the CategoryNameCtl.
- Use the Properties window to change the Appearance settings (Background).
- Select the Preview button, the Categories report should now look similar to the following image:
Step 2: Create the detail report
- In the C1FlexReportDesigner application, click the New Report button to create a basic report definition using the FlexReport Wizard.
- Select the Products table from the C1NWind database.
- Include the following fields in the report: ProductName, QuantityPerUnit, UnitPrice, UnitsInStock, and UnitsOnOrder.
- In the Report Designer, click the Design button to begin editing the report.
- Set the Page Header and Header section's Visible property to False.
- In the Detail section, arrange the controls so that they are aligned with the heading labels. Use the Properties window to change the Appearance settings.
Step 3: Create the Subreport field
The C1FlexReportDesigner application now has two separate reports, Categories Report and Products Report. The next step is to create a subreport:
- From the Reports list in the Designer, select Categories Report (master report).
- In design mode, from Fields group in Insert tab, click the Subreport icon and select Products Report from the drop-down menu.
- In the Detail section of your report, click and drag the mouse pointer to make the field for the subreport:
Step 4: Link the Subreport to the master report
The master-detail relationship is controlled by the SubreportFilter property of the subreport field. This property should contain an expression that evaluates into a filter condition that can be applied to the subreport data source.
The Report Designer can build this expression automatically for you. Complete the following steps:
- Right-click the subreport field and select Link Subreport from the menu.
Link Subreport dialog box appears that allows you to select which fields should be linked.
The Subreport field in design area now appears as follows:
- Once you make a selection and click OK, the Report Designer builds the link expression and assigns it to the SubreportFilter property of the subreport field. In this case, the expression is:
"[CategoryID] = '" & [CategoryID] & "'"