Siebel Reports Administration Guide > Sorting Records in Memory >

Examining a Report Sorted on a Multi-Value Field (MVF)

A good MVF-sorted report to study is the Opportunities by Sales Rep report, which is invoked in the Opportunities screen (typically from the My Opportunities filter). You should examine the report output in Siebel Sales, and the report design in Actuate e.Report Designer Professional, leaving both open to compare them.

To generate the Opportunities by Sales Rep report

  1. Open Siebel Sales.
  2. Click Site Map and navigate to Opportunities > Opportunities > My Opportunities.
  3. Click the Reports button, and from the drop-down list select By Sales Rep.

To open the report design for the Opportunities by Sales Rep report

  1. Open Actuate e.Report Designer Professional.
  2. Choose File > Open.
  3. In the Open dialog box, navigate to the C:\Siebdev\RPTSRC\STANDARD folder (or the equivalent on your computer) and select opslsrep.rod.

The opslsrep.rod report design file in Actuate e.Report Designer Professional is shown in Figure 18.

Figure 18.  Opportunities by Sales Rep Design
Click for full size image

Explore the report design, compare design elements to the corresponding features in the report output, and right-click components to view their property lists.

Notice the following features of this report design:

  • There are three datastreams, corresponding to the master report, the subreport, and the combined report. The master report (GenerateDataStream) and the subreport (InnerReport) are strictly for data gathering and do not have content frames.
  • If you open Siebel Tools and navigate to the report object definitions for the Opslsrep report (Opportunities - By Sales Rep) and its children, you can see that opportunity records are the parent, and position records (with a limited number of fields exposed) are the child. This is also reflected in the report design in Actuate, with the master datastream obtaining opportunities and the detail datastream obtaining positions for each opportunity.
  • If you right-click the top-level report design component, choose Properties, and click the Variables tab, you can see that a custom variable has been defined. It is called RowList and is of the AcList class. This list structure variable holds the data rows as they are obtained from the input datastreams, for later access by the sort (combined) datastream. This is described in Creating a Global List Variable.
  • The Fetch method in each of the three datastreams has been locally overridden in order to change the record acquisition code. You can determine this by opening the Properties window for the datastream, clicking the Methods tab, and noting the dark font used for the name of the Fetch method. Double-click the method name to view the code.
    • The Fetch method on the master datastream (QueryOuter) moves the data in the current master record to a public data row variable called OutSideDataRow. This variable is defined on the master datastream, making the current master record available to the detail datastream, ssPositionQuery. See About the Fetch Method on the Master Datastream.
    • The Fetch method on the detail datastream (ssPositionQuery) joins the master and detail data rows to create a combined data row, which is subsequently added to the RowList global list. See About the Fetch Method on the Detail Datastream.
    • The Fetch method on the combined datastream (GetFromList) gets each data row from the global list and passes the data row to the sort filter. See About the Fetch Method on the Combined Datastream.
  • The combined report section, GenerateFormat, uses the GetFromList datastream that has been locally created and defined, rather than imported from the data supply library file generated by Siebel Tools. The parent component of this datastream, rather than the report section itself, is a data filter component. The datastream is created from the ssDataSource library component in sscustom.rol and the data filter from the ssMemoryDataSorter in the same library.

    The Compare method on the sort data filter re-sorts the data rows that have been sent to the filter. The sort data filter component is described in About the Compare Method on the Sort Data Filter.

Siebel Reports Administration Guide