windowsforms-403904-controls-and-libraries-pivot-grid-binding-to-data-in-memory-mode-optimized-mode-bind-pivot-grid-fields-to-window-calculations.md
The article describes how to use the Binding API to bind a Pivot Grid field to the result of the window calculation when the Pivot Grid uses the Optimized data processing engine.
Add a new field to the data area in any of the following ways:
Set the field’s PivotGridFieldBase.DataBinding property to one of the following values:
Specify calculation properties according to the set DataBinding value.
Run Demo: Field Calculation Bindings
The following example shows how to create the RunningTotalBinding calculation binding. The Pivot Grid binds the fieldProductAmountRunningTotal field to the result of the running total calculation.
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");
//Bind a field to a column in the data source.
fieldProductAmount.DataBinding = productAmountBinding;
//Calculate a running summary on the column.
fieldProductAmountRunningTotal.DataBinding = new RunningTotalBinding() {
Source = productAmountBinding,
PartitioningCriteria = CalculationPartitioningCriteria.ColumnValue,
SummaryType = PivotSummaryType.Sum
};
pivotGridControl.Fields.AddRange(new PivotGridField[] {
fieldProductAmount,
fieldProductAmountRunningTotal,
});
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")
'Bind a field to a column in the data source.
fieldProductAmount.DataBinding = productAmountBinding
'Calculate a running summary on the column.
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
Pivot Grid Data Processing Modes