Siebel Reports Administration Guide > Using Master-Detail Reports >
How Master-Detail Reports Work
Figure 12 illustrates the structure of a master-detail report in Actuate.
Figure 12. Structure of a Master-Detail Report
This includes the following major components:
- Report Design. This is the top-level component in a report and corresponds to the ROD file in which it resides. There are no special features of the report design component for master-detail reports.
- Master Report Section. The master report section defines the data acquisition for and display of each master record and, through its child components, defines the subreports.
- Master Datastream. The master datastream component defines the source of data for the master records. A separate datastream is defined in each subreport to obtain the detail data. As in group reports, the data must be sorted with the group field as the primary sort key.
- Group Section. The group section component implements grouping and group break behavior for the master records in its parent report section. This behavior is defined in the group section's Key property and other properties, such as PageBreakBefore. The subreports are children of the group section component.
- Sequential Section. A sequential section causes its child section components to execute one after another in sequence. In a master-detail report, this causes the Before frame to execute before the first subreport section, followed by each additional subreport section if any are present.
- Before Section. This section holds the frame that appears once for each master record, displaying master information before the subreports.
- Subreport Report Section. Each subreport section defines one subreport in the master-detail report. It has its own datastream and content frames, defined with child components.
- Subreport Datastream. Each detail datastream provides data to the detail records in one subreport (its parent report section). The data is obtained through a subquery on the master business component query, requesting all detail records for the current master record.
- Subreport Page Header Frame. In a subreport report section, the page header frame defines the heading information for the subreport records. This normally includes a title identifying the subreport and column heading labels to appear above the subreport records.
- Subreport Content Frame. The content frame defines the layout of one subreport row.
To learn more about the configuration of a simple master-detail report, it is helpful to open a standard Siebel report of this type. A good report to study for this purpose is the Service Request Activity (All) report, which is invoked from a filter in the Service screen in Siebel Service (typically the My Service Requests filter). Examine the report output in Siebel Service, and the report design in Actuate e.Report Designer Professional, leaving both open to compare them.
To generate the Service Request Activity (All) report in the Siebel client
- Log in to the Siebel client.
- Navigate to the Service Requests screen, Service Request List view.
- From the application-level menu, click Reports, and then choose Service Request Activity (All).
The Service Request Activity (All) report appears in the browser window, as shown in Figure 11.
To open the report design for the Service Request Activity (All) report
- Open Actuate e.Report Designer Professional.
- From the application-level menu, choose File, and then Open.
- In the Open dialog box, navigate to the $\Siebel\RPTSRC\STANDARD folder, or the equivalent on your computer, choose srvreqaa.rod, and then click Open.
For more information about how language extensions appear in the directory structure, see About Language Extensions.
Explore the report design, compare design elements to the corresponding features in the report output, and then right-click components to view their property lists.
Note the following features of this report design:
- There is a page break before each new service request (master) record. This is configured with a value of TRUE for the PageBreakBefore property of the group section component (ssGrpRowID).
- The Before frame in the group section and the page header and content frames in the report section are published components obtained from the sssrvreq.rol custom component library. The contents of these frames are used identically in the two reports that list activities by service request.
- The ssService_RequestQuery datastream in the master report and the ssActionQuery_1 datastream in the activity subreport are obtained from the srvreqaa.rol data supply library file. In the data supply library file for a master-detail report, one datastream is provided for the master report and one for each subreport.
Additional useful information is obtained by viewing the report object definition (and children) for this report in Siebel Tools.
To view the object definitions for the Service Request Activity - All report
- Open Siebel Tools.
- Click the Report object type in the Object Explorer.
- In the Reports OBLE, query the Name property for Service Request Activity - All.
- Expand the Report object type in the Object Explorer, and then click the Sub Report object type.
The Subreports OBLE displays subreport child object definitions of the current parent report. The Service Request Activity - All report has one child subreport object definition: Action. The Action Subreport defines the activity subreport.
Note the value in the business component property for the Action subreport is Action. There is no separate report name because a subreport in Actuate is internal to the report design that uses the subreport object definition's parent.
- In the Object Explorer, expand the Sub Report object type, and then click Sub Report Field.
Note the list of fields displayed in the Subreports OBLE. These fields are children of the Action subreport object definition.
Subreport field object definitions perform the same role for a subreport as report field object definitions do for a report. They define the fields to export to the report or subreport from the business component specified in the parent's business component property.