Back to Devexpress

Bind Pivot Grid Fields to Window Calculations

windowsforms-403904-controls-and-libraries-pivot-grid-binding-to-data-in-memory-mode-optimized-mode-bind-pivot-grid-fields-to-window-calculations.md

latest4.4 KB
Original Source

Bind Pivot Grid Fields to Window Calculations

  • Aug 05, 2022
  • 2 minutes to read

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.

Design Time

  1. Add a new field to the data area in any of the following ways:

  2. Set the field’s PivotGridFieldBase.DataBinding property to one of the following values:

  3. Specify calculation properties according to the set DataBinding value.

Runtime

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.

  1. Create an instance of the RunningTotalBinding class with the Source property set to the DataBindingBase descendant’s instance.
  2. Specify the window frame and summary type.
  3. Assign the RunningTotalBinding instance to the PivotGridField.DataBinding property.
csharp
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,
});
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")
'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

PivotGridField

Pivot Grid Data Processing Modes

Bind Pivot Grid Fields to Data Columns

Bind Pivot Grid Fields to Calculated Expressions