Custom Summaries
- 2 minutes to read
This article describes how to create custom summaries in Optimized and Server modes.
Use the PivotGridControl.CustomSummary event to create custom summaries in Legacy or LegacyOptimized mode.
#Custom Summaries Overview
Pivot Grid allows you to calculate common summary functions for data fields. You can create custom summaries to execute complex calculations.
Custom summaries can do the following:
- Use predefined and custom aggregate functions to calculate summary values.
- Include multiple fields in a summary calculation.
- Calculate a summary for records that match certain criteria.
#Create a Custom Summary
Do the following to create a custom summary for a data field:
- Create a Pivot Grid field.
- Create an ExpressionDataBinding object, and specify a calculated summary expression in the object’s constructor.
- Assign the created
ExpressionDataBinding
object to the field’s DataBinding property. - Add the field to the Data Area.
Refer to the following article for information on how to create calculated expressions: Bind Pivot Grid Fields to Calculated Expressions.
Tip
If a custom summary calculation requires data from multiple data sources, bind the Pivot Grid to a FederationFederation
.
#Example
The example below shows how create a Count Distinct
field and bind it to an expression that contains a custom function. The expression counts distinct values (the number of orders with equal product quantities).
<dx:ThemedWindow x:Class="DXPivotGrid_CustomSummary.MainWindow" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DXPivotGrid_CustomSummary"
xmlns:dxpg="http://schemas.devexpress.com/winfx/2008/xaml/pivotgrid">
<Grid>
<dxpg:PivotGridControl Loaded="PivotGridControl1_Loaded" Name="pivotGridControl1"
DataProcessingEngine="Optimized">
<dxpg:PivotGridControl.Fields>
<!-- ... -->
<dxpg:PivotGridField Name="fieldQuantityDistinctCount" Area="DataArea" AreaIndex="1"
Caption="Count Distinct">
<dxpg:PivotGridField.DataBinding>
<dxpg:ExpressionDataBinding Expression="DistinctCount([OrderID])"/>
</dxpg:PivotGridField.DataBinding>
</dxpg:PivotGridField>
</dxpg:PivotGridControl.Fields>
</dxpg:PivotGridControl>
</Grid>
</dx:ThemedWindow>
Refer to the following article for more information about custom functions: Custom Aggregate Functions.