Follow the steps below to create a PivotGrid field that uses a window function to calculate its data.
- Switch to the Optimized Mode.
- Create a PivotGridField instance and specify the field's caption, location, name, and format.
-
Create a data binding class instance.
You can choose a predefined binding class instance:
You can also use the WindowExpressionBinding type to specify a custom string as an expression that uses window functions:
-
Specify the Partitioning Criteria to define a window and the calculation direction (see CalculationDirection) for certain calculation types.
- Assign the data binding instance to the PivotGridFieldBase.DataBinding property.
- Add the field to the PivotGridControl.Fields collection.
C# |
pivotGridControl.OptionsData.DataProcessingEngine = PivotDataProcessingEngine.Optimized;
PivotGridField fieldProductAmount = new PivotGridField()
{
Area = PivotArea.DataArea,
Caption = "Product Sales",
Name = "fProductAmount"
};
PivotGridField fieldProductAmountRunningTotal = new PivotGridField
{
Area = PivotArea.DataArea,
Caption = "Running Total",
Name = "fRunningTotal"
};
DataSourceColumnBinding productAmountBinding = new DataSourceColumnBinding("ProductAmount");
fieldProductAmount.DataBinding = productAmountBinding;
fieldProductAmountRunningTotal.DataBinding = new RunningTotalBinding() {
Source = productAmountBinding,
PartitioningCriteria = CalculationPartitioningCriteria.ColumnValue,
SummaryType = PivotSummaryType.Sum
};
pivotGridControl.Fields.AddRange(new PivotGridField[] {
fieldProductAmount,
fieldProductAmountRunningTotal,
});;
|
VB |
pivotGridControl.OptionsData.DataProcessingEngine = PivotDataProcessingEngine.Optimized
Dim fieldProductAmount As New PivotGridField()
fieldProductAmount.Area = PivotArea.DataArea
fieldProductAmount.Caption = "Product Sales"
fieldProductAmount.Name = "fProductAmount"
Dim fieldProductAmountRunningTotal As New PivotGridField()
fieldProductAmountRunningTotal.Area = PivotArea.DataArea
fieldProductAmountRunningTotal.Caption = "Running Total"
fieldProductAmountRunningTotal.Name = "fRunningTotal"
Dim productAmountBinding As New DataSourceColumnBinding("ProductAmount")
fieldProductAmount.DataBinding = productAmountBinding
Dim runningTotalBinding As New RunningTotalBinding()
runningTotalBinding.Source = productAmountBinding
runningTotalBinding.PartitioningCriteria = CalculationPartitioningCriteria.ColumnValue
runningTotalBinding.SummaryType = PivotSummaryType.Sum
fieldProductAmountRunningTotal.DataBinding = runningTotalBinding
pivotGridControl.Fields.AddRange(New PivotGridField() { fieldProductAmount, fieldProductAmountRunningTotal})
|

See Also