Pivot Engine / Pivot Processing
In This Topic
    Pivot Processing
    In This Topic

    The transformation of a design time pivot to a runtime pivot is known as pivot processing. Following is a brief description of the steps performed by this process:

    1. Fetch Data - the processing starts by fetching the data from the data set and building an abstract table representation for it. The data fetching phase allows the rest of the steps to be performed in a data source invariant manner.
    2. Enter Global Scope - the pivot enters the Global scope, which references the FULL recordset. The Global scope is available in all expressions (see Variables).
    3. Pivot filtering - the purpose of pivot filtering is to remove records from the data set that you do not want to include in the row and column data grouping processing. Pivot filtering is performed by the pivot filters. This phase removes records from the FULL recordset (see Filtering).
    4. Enter Pivot Scope - the pivot enters the Pivot scope, the recordset of which includes the records that passed the pivot filters. The Pivot scope is available in all expressions, except the expression used in pivot filters.
    5. Evaluate Pivot Properties - at this step the pivot properties are evaluated. Note that the current scope of evaluation is the Pivot scope.
    6. Process Row/Column Data Groupings - the processing of row /column data groupings is identical. It starts from the root row/column data groupings and then proceeds with their children (e.g. data groupings are processed in an outer-to-inner, parent-to-children fashion).

      Each data grouping may generate zero, one or more data members. A data member is an instance of a data grouping at runtime. Each data member has an associated scope, which references a single group recordset created by the data grouping grouping expressions (see Grouping). The properties of each data member are the data grouping properties evaluated towards the data member scope.

      Data members are filtered and sorted by the data grouping filter and sorting rules (see Filtering and Sorting). The child data groupings of a data grouping generate child data members for all data members created for the data grouping.
    7. Process the Data Matrix - a runtime data cell is created for all leaf row and column data member intersections. The properties contained in each runtime data cell are obtained from the design time data cell, corresponding to the leaf row and column data groupings for which the leaf row and column data members were generated. Because there may be multiple data members generated for a data grouping, the properties of a design cell can span several runtime cells.

      The properties for a runtime data cell are evaluated towards a scope, which references the intersection of the leaf row and column data member recordsets, for which the cell was created. The parent of this scope is the pivot scope. You can reference the leaf row and column data member scopes in data cell property expressions (see Variables).
    See Also