Interface IAggregationTwoPassPlugin
Interface implemented by aggregation plugins that need a second pass, typically "Percentage of total"
Inherited Members
Namespace: SuperOffice.CRM.ArchiveLists.Aggregation
Assembly: SoDataBase.dll
Syntax
public interface IAggregationTwoPassPlugin : IAggregationPlugin
Remarks
As opposed to normal aggregators, where detail lines get a snapshot of the aggregated value when they are born, two-aggregators need to implement a real cloning method - otherwise they will not survive in the detail rows, where they need to do the pass-2 calculations.
Methods
Clone()
Create a clone suitable for the detail level
Declaration
IAggregationTwoPassPlugin Clone()
Returns
Type | Description |
---|---|
IAggregationTwoPassPlugin |
Remarks
As opposed to normal aggregators, where detail lines get a snapshot of the aggregated value when they are born, two-aggregators need to implement a real cloning method - otherwise they will not survive in the detail rows, where they need to do the pass-2 calculations.
SetOutsideValue(IAggregationTwoPassPlugin)
Called on the detail level, with a reference to the same column, but the instance of the aggregator that is in the nearest parent level.
Declaration
void SetOutsideValue(IAggregationTwoPassPlugin parentInstance)
Parameters
Type | Name | Description |
---|---|---|
IAggregationTwoPassPlugin | parentInstance |
Remarks
To implement a percentage of total, the normal AddItem should store its individual items. The detail level will then be able to access the sum of items, by calling (private) methods on its parent-level instance, and compute its own percentage item afterwards.