# Summary Display Types | WinForms Controls | DevExpress Documentation

Summaries in [cells](/WindowsForms/1681/controls-and-libraries/pivot-grid/ui-elements/cell) are calculated according to the [SummaryType](/CoreLibraries/DevExpress.XtraPivotGrid.PivotGridFieldBase.SummaryType) property of [data fields](/WindowsForms/1711/controls-and-libraries/pivot-grid/ui-elements/data-field). 

[PivotGridControl](/WindowsForms/DevExpress.XtraPivotGrid.PivotGridControl) can show how cell values correlate to summary values in other cells instead of displaying raw summary results. For instance, the Pivot Grid allows you to display the percentage of totals and grand totals, or the absolute or percentage difference between current and preceding cells.

## Optimized Mode

You can implement the summary display type functionality through [window calculations](/CoreLibraries/401364/devexpress-pivot-grid-core-library/advanced-analytics/window-calculations/window-calculations-overview) in [Optimized](/CoreLibraries/401367/devexpress-pivot-grid-core-library/pivot-grid-modes/in-memory-mode/pivot-grid-optimized-calculation-engine) mode. For this use the following classes:

- [RunningTotalBinding](/WindowsForms/DevExpress.XtraPivotGrid.RunningTotalBinding)
- [DifferenceBinding](/WindowsForms/DevExpress.XtraPivotGrid.DifferenceBinding)
- [RankBinding](/WindowsForms/DevExpress.XtraPivotGrid.RankBinding)
- [PercentOfTotalBinding](/WindowsForms/DevExpress.XtraPivotGrid.PercentOfTotalBinding)
- [MovingCalculationBinding](/WindowsForms/DevExpress.XtraPivotGrid.MovingCalculationBinding)

Refer to the following topic for more information: [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).

You can also implement [custom summaries](/WindowsForms/9391/controls-and-libraries/pivot-grid/data-shaping/summarization/summaries/custom-summaries) to build an expression that executes complex calculations for a Pivot Grid field.

### Example

[View Example: Pivot Grid for WinForms - How to Change SummaryDisplayType in the Context Menu](https://github.com/DevExpress-Examples/winforms-pivot-change-summarydisplaytype-in-context-menu)

The following code snippet shows how to calculate different types of a percentage of all values for the *Number* field:

- C#
- VB.NET

<section id="tabpanel_akiUzHlqI1_tabid-csharp" role="tabpanel" data-tab="tabid-csharp">
<pre><code class="lang-cs">void ItemClick(object sender, EventArgs e) {
// ...
    PivotGridField field = item.Tag as PivotGridField;
    DataSourceColumnBinding sourceBinding = new DataSourceColumnBinding(&quot;Number&quot;);
    PivotSummaryDisplayType newValue = (PivotSummaryDisplayType)Enum.Parse(typeof(PivotSummaryDisplayType), item.Caption);
    switch(newValue) {
    // ...
        case PivotSummaryDisplayType.PercentOfColumn:
            field.DataBinding = new PercentOfTotalBinding(
                sourceBinding,
                CalculationPartitioningCriteria.ColumnValueAndRowParentValue);
            break;
        case PivotSummaryDisplayType.PercentOfRow:
            field.DataBinding = new PercentOfTotalBinding(
                sourceBinding,
                CalculationPartitioningCriteria.RowValueAndColumnParentValue);
            break;
        case PivotSummaryDisplayType.PercentOfColumnGrandTotal:
            field.DataBinding = new PercentOfTotalBinding(
                sourceBinding,
                CalculationPartitioningCriteria.ColumnValue);
            break;
        case PivotSummaryDisplayType.PercentOfRowGrandTotal:
            field.DataBinding = new PercentOfTotalBinding(
                sourceBinding,
                CalculationPartitioningCriteria.RowValue);
            break;
        case PivotSummaryDisplayType.PercentOfGrandTotal:
            field.DataBinding = new PercentOfTotalBinding(
                sourceBinding,
                CalculationPartitioningCriteria.None);
            break;
            // ...
        default:
            field.DataBinding = sourceBinding;
            break;
    }
    field.Tag = newValue;

}
</code></pre></section>
<section id="tabpanel_akiUzHlqI1_tabid-vb" role="tabpanel" data-tab="tabid-vb" aria-hidden="true" hidden="hidden">
<pre><code class="lang-vb">Private Sub ItemClick(ByVal sender As Object, ByVal e As EventArgs)
&#39; ...
    Dim field As PivotGridField = TryCast(item.Tag, PivotGridField)
    Dim sourceBinding As New DataSourceColumnBinding(&quot;Number&quot;)
    Dim newValue As PivotSummaryDisplayType = DirectCast(System.Enum.Parse(GetType(PivotSummaryDisplayType), item.Caption), PivotSummaryDisplayType)
    Select Case newValue
    &#39; ...
        Case PivotSummaryDisplayType.PercentOfColumn
            field.DataBinding = New PercentOfTotalBinding(sourceBinding, CalculationPartitioningCriteria.ColumnValueAndRowParentValue)
        Case PivotSummaryDisplayType.PercentOfRow
            field.DataBinding = New PercentOfTotalBinding(sourceBinding, CalculationPartitioningCriteria.RowValueAndColumnParentValue)
        Case PivotSummaryDisplayType.PercentOfColumnGrandTotal
            field.DataBinding = New PercentOfTotalBinding(sourceBinding, CalculationPartitioningCriteria.ColumnValue)
        Case PivotSummaryDisplayType.PercentOfRowGrandTotal
            field.DataBinding = New PercentOfTotalBinding(sourceBinding, CalculationPartitioningCriteria.RowValue)
        Case PivotSummaryDisplayType.PercentOfGrandTotal
            field.DataBinding = New PercentOfTotalBinding(sourceBinding, CalculationPartitioningCriteria.None)
            &#39; ...
        Case Else
            field.DataBinding = sourceBinding
    End Select
    field.Tag = newValue
End Sub
</code></pre></section>

## Legacy, LegacyOptimized, and OLAP Modes

A data field’s [PivotGridFieldBase.SummaryDisplayType](/CoreLibraries/DevExpress.XtraPivotGrid.PivotGridFieldBase.SummaryDisplayType) property allows you to choose one of the predefined summary display types. The default value of this property ([PivotSummaryDisplayType.Default](/CoreLibraries/DevExpress.Data.PivotGrid.PivotSummaryDisplayType)) indicates that summary values are displayed as is.

## More Documentation

See the following topics for more information about predefined summary display types:

- [Variation Types](/WindowsForms/10913/controls-and-libraries/pivot-grid/data-shaping/summarization/summaries/summary-display-types/variation-types)
- [Percentage Types](/WindowsForms/10914/controls-and-libraries/pivot-grid/data-shaping/summarization/summaries/summary-display-types/percentage-types)
- [Rank Types](/WindowsForms/10915/controls-and-libraries/pivot-grid/data-shaping/summarization/summaries/summary-display-types/rank-types)

See Also

[Optimized Calculation Engine](/CoreLibraries/401367/devexpress-pivot-grid-core-library/pivot-grid-modes/in-memory-mode/pivot-grid-optimized-calculation-engine)

[Window Calculations Overview](/CoreLibraries/401364/devexpress-pivot-grid-core-library/advanced-analytics/window-calculations/window-calculations-overview)

[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)