Siebel Reports Administration Guide > Smart Reports >
About the Report Structure for Smart Reports
Smart Reports have a fairly complex structure relative to other standard Siebel reports. The hierarchy of high-level report design components in a Smart Report is illustrated in Figure 22.
Figure 22. Smart Report Component Hierarchy
The design components in Figure 22 are as follows:
- Main Sequential Section. This is the parent component for all the major report sections. It causes its child sections to execute sequentially.
- LOV Loading Report Sections. This is the first set of report sections executed. The purpose of these report sections is to obtain high, low, and average (or trigger) values for each of the thermometers from records in the List of Values (LOV) table. For example, in the Account Summary Smart Report, there is one LOV loading section each for the Past Revenue, Pipeline, and Customer Satisfaction thermometers. Each of these report sections obtains a record from the List of Values table corresponding to a particular LOV type. For more information, see Obtaining the Minimum, Maximum, and Trigger Values for Smart Reports.
- Main Report Section. This report section holds all the design components for the Smart Report, other than the initial data collection sections and the pagelist. Its children are the main report datastream, the page header for the Smart Report, and the sequential section that processes the dashboard and various subreports.
- Main Report Datastream. This datastream is the master datastream for the report, providing opportunity records for the opportunity Smart Report, account records for the account Smart Report, and so on. It uses the data row from the master datastream in the data supply library file.
- Page Header. This component defines the page header for the Smart Report. In the page header, the name of each major entity (account, opportunity, and so on) appears, as it does in other standard reports. Certain summary values for the entity may be displayed as well. The unique feature of the page header in a Smart Report is that it also displays the order-of-merit indicator for that entity. The configuration of the order-of-merit indicator is discussed in About the Order-of-Merit Indicator in Smart Reports.
- Subreports Sequential Section. This section contains and sequentially processes the various report sections for the main report and subreports. These include data sorting sections, the dashboard section, and sections for the subreports that follow the dashboard in the report.
- Data Loading and Sorting Report Sections. These report sections are the first to appear in the sequential section, before sections that actually generate report lines and graphics. The data loading and sorting sections obtain and manipulate detail data for the current master record. The data is obtained from the various detail datastreams in the data supply library file.
The detail datastreams accessed at this stage are those that must store data in global memory structures, often with some sorting or merging before storage. Detail datastreams without a global memory storage requirement (such as the contact, product, and activity datastreams in the Account Summary report) do not need to be included before the report sections in which they are used.
- Dashboard Parallel Section. A parallel section contains multiple report sections displayed in different flows on the same page, often side by side. To create a dashboard section displaying thermometers and other graphics and text side by side, a parallel section is required. The children of the parallel section are the report sections for graphics and text that appear in the dashboard.
- Dashboard Graphics Report Sections. These report sections correspond to individual graphic elements in the dashboard. Each has a datastream, and some have a data filter as well. Each also has a content frame. Included as a child of the content frame is either a graph component or a thermometer frame.
A thermometer frame is derived from the ssThermometer component in the ssSmart.rol library. The OnRow method in a thermometer frame calculates values for, and passes four parameters to, the corresponding method in the parent library thermometer: MinimumValue, MaximumValue, TriggerDataValue, and DataValue. The thermometer is drawn based on these four values. The thermometer label, trigger label, and fill color are specified in properties in the thermometer frame. For information on thermometer configuration, see About Thermometers Used in Smart Reports.
When a graph is displayed instead of a thermometer (such as the Competitive Activity graph in the Opportunity Detail and Account Summary reports), the content frame holds an AcDetailGraph or ssSummaryGraph control, configured as described in Using Graphics in Reports.
- Dashboard Text Report Section. This section includes the datastream and content frame for the textual master report information. The report text in the dashboard is from one master record; for example, in the Account Summary report, the fields for the account record are printed in the dashboard text report section. The datastream for this section is the master datastream in the data supply library file. The content frame provides blank space for the thermometers and other dashboard graphics, although these are positioned using the dashboard subpage rather than this content frame.
- Dashboard Subpage. A subpage establishes the physical layout of visual elements in a section. The dashboard subpage specifies the layout of the dashboard parallel section. The locations of the thermometers, dashboard graphs, and text report section are determined here by defining and positioning a flow for each in the subpage. Generally, the flow for the text report section occupies the entire subpage, and the other flows each occupy some portion of this area.
- Nondashboard Subreport Sections. The subreports that make up the summary and detail sections appear sequentially in the report following the dashboard parallel section. These are configured as typical subreports, each with a datastream and a content section. However, the data may be obtained from a memory structure (previously loaded in the data loading and sorting sections) and sorted or merged using a data filter.