Version

SummaryDefinition Class

Describes a summary to calculate.
Syntax
'Declaration
 
Public Class SummaryDefinition 
   Inherits System.Windows.DependencyObject
public class SummaryDefinition : System.Windows.DependencyObject 
Remarks

A SummaryDefinition object describes summary calculation to perform on values of a perticular field. It contains information on what type of calculation to perform (whether sum, average etc...) via its Calculator property. It also has various properties like DisplayArea and Position that control where the calculation results are displayed.

Add one or more instance of this object to FieldLayout's FieldLayout.SummaryDefinitions collection to summarize data. The calculation results are stored in SummaryResult objects. Summary results can be accessed via RecordCollection's RecordCollectionBase.SummaryResults property.

To enable the user interface that lets the user summarize data, set the FieldSettings' FieldSettings.AllowSummaries and FieldSettings.SummaryUIType properties.

FieldSettings.AllowSummariesFieldSettings.SummaryUIType
Example
The following code shows you some of the important settings relating to Summaries Functionality.

Note that the following code assumes there is a XamDataGrid or XamDataPresenter by the name of _dp defined.
Private Sub Window1_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
    ' Set the data source.
    _dp.DataSource = _dataSource

    ' AllowSummaries enables the UI for the user to be able to select/unselect
    ' summaries for fields. SummaryUIType specifies whether the user is allowed to
    ' select single or multiple summaries pereach field. It also has options for
    ' enabling summary selection UI for numeric fields only or for all fields.
    ' 
    _dp.FieldSettings.AllowSummaries = True
    _dp.FieldSettings.SummaryUIType = SummaryUIType.MultiSelect

    ' To add a summary, use the SummaryDefinitions property of the FieldLayout.
    ' Each SummaryDefinition object represents a summary calculation to perform
    ' on a field's data. SourceFieldName specifies the field whose data will be
    ' summarized. Key is optional and it simply associates an identifier to the
    ' summary. This identifier can be used later to access the summary via 
    ' indexers of SummaryDefinitionCollection and SummaryResultCollection. 
    ' Calculator specifies the type of calculation to perform on the field data. 
    ' There are five built in calculators of Average, Sum, Minimum, Maximum and 
    ' Count. However you can easily add custom calculators by deriving from 
    ' SummaryCalculator base class and registering the new calculator using the 
    ' SummaryCalculator's Register static method. 
    ' 
    Dim summaryDef1 As SummaryDefinition = _dp.FieldLayouts(0).SummaryDefinitions.Add( _
        "PriceAverage", SummaryCalculator.Average, "Price")

    ' StringFormat specifies the format that will be used to format the summary 
    ' result.
    ' 
    summaryDef1.StringFormat = "Avg={0:C}"

    ' Add a second summary.
    Dim summaryDef2 As SummaryDefinition = _dp.FieldLayouts(0).SummaryDefinitions.Add( _
        "PriceTotal", SummaryCalculator.Sum, "Price")

    summaryDef2.StringFormat = "Total={0:C}"
End Sub
Note that the following code assumes there is a XamDataGrid or XamDataPresenter by the name of _dp defined.
public void Window1_Loaded( object sender, RoutedEventArgs e )
{
	// Set the data source.
	_dp.DataSource = _dataSource;

	// AllowSummaries enables the UI for the user to be able to select/unselect
	// summaries for fields. SummaryUIType specifies whether the user is allowed to
	// select single or multiple summaries pereach field. It also has options for
	// enabling summary selection UI for numeric fields only or for all fields.
	// 
	_dp.FieldSettings.AllowSummaries = true;
	_dp.FieldSettings.SummaryUIType = SummaryUIType.MultiSelect;

	// To add a summary, use the SummaryDefinitions property of the FieldLayout.
	// Each SummaryDefinition object represents a summary calculation to perform
	// on a field's data. SourceFieldName specifies the field whose data will be
	// summarized. Key is optional and it simply associates an identifier to the
	// summary. This identifier can be used later to access the summary via 
	// indexers of SummaryDefinitionCollection and SummaryResultCollection. 
	// Calculator specifies the type of calculation to perform on the field data. 
	// There are five built in calculators of Average, Sum, Minimum, Maximum and 
	// Count. However you can easily add custom calculators by deriving from 
	// SummaryCalculator base class and registering the new calculator using the 
	// SummaryCalculator's Register static method. 
	// 
	SummaryDefinition summaryDef1 = _dp.FieldLayouts[0].SummaryDefinitions.Add( 
		"PriceAverage", SummaryCalculator.Average, "Price" );

	// StringFormat specifies the format that will be used to format the summary 
	// result.
	// 
	summaryDef1.StringFormat = "Avg={0:C}";

	// Add a second summary.
	SummaryDefinition summaryDef2 = _dp.FieldLayouts[0].SummaryDefinitions.Add(
		"PriceTotal", SummaryCalculator.Sum, "Price" );

	summaryDef2.StringFormat = "Total={0:C}";
}
        <igDP:XamDataGrid x:Name="_dp" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >

            
<igDP:XamDataGrid.FieldSettings>
                
<!--
                    AllowSummaries enables the UI for the user to be able to select/unselect summaries for fields.
                    SummaryUIType specifies whether the user is allowed to select single or multiple summaries per
                    each field. It also has options for enabling summary selection UI for numeric fields only or 
                    for all fields.
                
-->
                
<igDP:FieldSettings AllowSummaries="true" SummaryUIType="MultiSelect" />
            
</igDP:XamDataGrid.FieldSettings>

            
<igDP:XamDataGrid.FieldLayouts>
                
<igDP:FieldLayout IsDefault="true" >
                    
<!--
                        Use FieldLayout's SummaryDefinitions collection to add summaries.
                    
-->
                    
<igDP:FieldLayout.SummaryDefinitions>
                        
<!--
                            Each SummaryDefinition object represents a summary calculation to perform on a field's data.
                            SourceFieldName specifies the field whose data will be summarized. 
                            
                            Key is optional and it simply associates an identifier to the summary. This identifier can
                            be used later to access the summary via indexers of SummaryDefinitionCollection and 
                            SummaryResultCollection.
                            
                            Calculator specifies the type of calculation to perform on the field data. There are five
                            built in calculators of Average, Sum, Minimum, Maximum and Count. You can easily add custom
                            calculators by deriving from SummaryCalculator base class and registering the new calculator
                            using the SummaryCalculator's Register static method.
                            
                            StringFormat specifies the format that will be used to format the summary result.
                        
-->
                        
<igDP:SummaryDefinition Key="PriceAverage" SourceFieldName="Price" Calculator="Average" StringFormat="{}Avg={0:C}" />
                        
<igDP:SummaryDefinition Key="PriceTotal" SourceFieldName="Price" Calculator="Sum"  StringFormat="{}Total={0:C}" />
                    
</igDP:FieldLayout.SummaryDefinitions>
                
</igDP:FieldLayout>
            
</igDP:XamDataGrid.FieldLayouts>

        
</igDP:XamDataGrid>
Requirements

Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also