Class GridSummaryColumnDescriptor
A GridSummaryColumnDescriptor declares a summary column within a summary row. GridSummaryColumnDescriptor descriptors are managed by the GridSummaryColumnDescriptorCollection which is returned by the SummaryColumns property of a GridSummaryRowDescriptor.
Inheritance
Implements
Inherited Members
Namespace: Syncfusion.Windows.Forms.Grid.Grouping
Assembly: Syncfusion.Grid.Grouping.Windows.dll
Syntax
public class GridSummaryColumnDescriptor : DescriptorBase, ICustomTypeDescriptor, IDisposable, ICloneable, IStandardValuesProvider, IGridTableCellAppearanceSource
Remarks
Each group in the GridTable has a summary section. The summary section has as many rows as there are GridSummaryRowDescriptors that are visible. Each GridSummaryRowDescriptor has a collection of GridSummaryColumnDescriptor columns. The GridSummaryColumnDescriptor defines the GridColumnDescriptor to calculate summary information for the SummaryType and the target column where the summary should be displayed in the grid.
The following example shows how to set up a summary. See also the grid\grouping\CustomSummary example for setting up custom summaries:
Examples
' Setup an integrated summary
Dim sd0 As New GridSummaryColumnDescriptor()
sd0.DataMember = "Quantity"
sd0.DisplayColumn = "Quantity"
sd0.Format = "{Average:#.00}"
sd0.SummaryType = SummaryType.DoubleAggregate
Me.gridGroupingControl1.TableDescriptor.SummaryRows.Add(New GridSummaryRowDescriptor("Row 0", "Average", sd0))
// Setup an integrated summary
GridSummaryColumnDescriptor sd0 = new GridSummaryColumnDescriptor();
sd0.DataMember = "Quantity";
sd0.DisplayColumn = "Quantity";
sd0.Format = "{Average:#.00}";
sd0.SummaryType = SummaryType.DoubleAggregate;
this.gridGroupingControl1.TableDescriptor.SummaryRows.Add(new GridSummaryRowDescriptor("Row 0", "Average", sd0));
Constructors
GridSummaryColumnDescriptor()
Initializes a new empty descriptor.
Declaration
public GridSummaryColumnDescriptor()
GridSummaryColumnDescriptor(String)
Initializes a new descriptor for the specified column (name) in the parent table.
Declaration
public GridSummaryColumnDescriptor(string name)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | The descriptor name which also identifies the GridColumnDescriptor. |
GridSummaryColumnDescriptor(String, SummaryType, String, String)
Initializes a new descriptor for the specified column (name) in the parent table, the summary type and the target column where the summary should be displayed.
Declaration
public GridSummaryColumnDescriptor(string name, SummaryType summaryType, string dataMember, string format)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | The descriptor name. |
| SummaryType | summaryType | The summary type. |
| System.String | dataMember | The target column at which to display the summary. |
| System.String | format | The format string used to format the text to display in the summary column. A format string consists of the PropertyName of the summaryType and a format specifier known from String.Format, e.g. {Average:###.00}. |
Properties
Appearance
Gets or sets the default GridTableCellAppearance with default GridTableCellStyleInfo information for all cell elements that display data of this summary column.
Declaration
public GridTableCellAppearance Appearance { get; set; }
Property Value
| Type |
|---|
| GridTableCellAppearance |
ColInRecord
Gets or sets the grid column index of the target cell where the summary is displayed.
Declaration
public int ColInRecord { get; set; }
Property Value
| Type |
|---|
| System.Int32 |
Collection
Gets the collection this descriptor belongs to.
Declaration
public GridSummaryColumnDescriptorCollection Collection { get; }
Property Value
| Type |
|---|
| GridSummaryColumnDescriptorCollection |
DataMember
The mapping for this column. You should specify here a field name of a FieldDescriptor ( or GridColumnDescriptor.MappingName)
Declaration
public string DataMember { get; set; }
Property Value
| Type |
|---|
| System.String |
DisplayColumn
Gets or sets the target column at which to display the summary.
Declaration
public string DisplayColumn { get; set; }
Property Value
| Type |
|---|
| System.String |
Engine
Gets the GridEngine that this summary column descriptor belongs to.
Declaration
public GridEngine Engine { get; }
Property Value
| Type |
|---|
| GridEngine |
Format
Gets or sets the format string used to format the text to display in the summary column. A format string consists of the PropertyName of the summaryType and a format specifier known from String.Format, e.g. {Average:###.00}.
Declaration
public string Format { get; set; }
Property Value
| Type |
|---|
| System.String |
IgnoreRecordFilterCriteria
Gets or sets a value indicates whether RecordFilter criteria should be ignored and the summary should be calculated for all records.
Declaration
public bool IgnoreRecordFilterCriteria { get; set; }
Property Value
| Type |
|---|
| System.Boolean |
MaxLength
Gets or sets a value that specifies the maximum length of the formatted text for this summary column. This value will be used for calculating the optimal width of a column. The default is the length of the Format text plus 5.
Declaration
public int MaxLength { get; set; }
Property Value
| Type |
|---|
| System.Int32 |
Name
Gets or sets the name of this descriptor. This name is used to look up the summary in the GridSummaryColumnDescriptorCollection.
Declaration
public virtual string Name { get; set; }
Property Value
| Type |
|---|
| System.String |
ParentRow
Gets the GridSummaryRowDescriptor this summary column belongs to.
Declaration
public GridSummaryRowDescriptor ParentRow { get; }
Property Value
| Type |
|---|
| GridSummaryRowDescriptor |
RowInRecord
Gets or sets the row index relative to the first row in the summary section of a group.
Declaration
public int RowInRecord { get; set; }
Property Value
| Type |
|---|
| System.Int32 |
Style
Gets or sets whether a summary should fill the entire row, only a column, or if it should be hidden.
Declaration
public GridSummaryStyle Style { get; set; }
Property Value
| Type |
|---|
| GridSummaryStyle |
SummaryDescriptor
Gets the SummaryDescriptor that is used for calculating the summaries. The GridEngine internally creates SummaryDescriptors for each GridColumnDescriptor based on the SummaryType and DataMember defined in the GridColumnDescriptor. If SummaryType.Custom was specified, the TableDescriptor.QueryCustomSummary event needs to instantiate the SummaryDescriptor.
Declaration
public SummaryDescriptor SummaryDescriptor { get; }
Property Value
| Type |
|---|
| SummaryDescriptor |
SummaryType
Gets or set the type of summary.
Declaration
public SummaryType SummaryType { get; set; }
Property Value
| Type |
|---|
| SummaryType |
TableDescriptor
Gets the TableDescriptor that this descriptor belongs to.
Declaration
public GridTableDescriptor TableDescriptor { get; }
Property Value
| Type |
|---|
| GridTableDescriptor |
Methods
Clone()
Creates a copy of this descriptor.
Declaration
public GridSummaryColumnDescriptor Clone()
Returns
| Type | Description |
|---|---|
| GridSummaryColumnDescriptor | A copy of this descriptor. |
Dispose(Boolean)
Disposes the objects and collection items.
Declaration
protected override void Dispose(bool disposing)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Boolean | disposing |
Overrides
Equals(Object)
Determines whether the specified System.Object is equal to the current System.Object.
Declaration
public override bool Equals(object obj)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Object | obj | The System.Object to compare with the current System.Object. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if the specified System.Object is equal to the current System.Object; otherwise, false. |
Overrides
GetDisplayText(ITreeTableSummary)
Returns the display text to be displayed in the summary grid cell given an ISummary.
Declaration
public string GetDisplayText(ITreeTableSummary summary)
Parameters
| Type | Name | Description |
|---|---|---|
| ITreeTableSummary | summary | The ISummary object with summary values. |
Returns
| Type | Description |
|---|---|
| System.String | The text to display in the grid cell. |
GetDisplayText(ITreeTableSummary, Object)
Returns the display text to be displayed in the summary grid cell given an ISummary.
Declaration
public string GetDisplayText(ITreeTableSummary summary, object groupPassThroughItem)
Parameters
| Type | Name | Description |
|---|---|---|
| ITreeTableSummary | summary | The ISummary object with summary values. |
| System.Object | groupPassThroughItem | The group Pass Through Item. |
Returns
| Type | Description |
|---|---|
| System.String | The text to display in the grid cell. |
GetDisplayText(Group)
Returns the display text to be displayed in the summary grid cell given an ISummary.
Declaration
public string GetDisplayText(Group g)
Parameters
| Type | Name | Description |
|---|---|---|
| Group | g | The Group with summary values. |
Returns
| Type | Description |
|---|---|
| System.String | The text to display in the grid cell. |
GetDisplayText(Table, GridSummaryRow)
Returns the display text to be displayed in the summary grid cell using the calculated summary value for that specific run-time row element in the table.
Declaration
public string GetDisplayText(Table table, GridSummaryRow row)
Parameters
| Type | Name | Description |
|---|---|---|
| Table | table | The parent table. |
| GridSummaryRow | row | The row in the table. |
Returns
| Type | Description |
|---|---|
| System.String | The text to display in the grid cell. |
Examples
These code snippets demonstrates different alternatives to get to the summary text (strong typed vs GridSummaryColumnDescriptor.Format)
// Calling this method to demonstrate different alternatives to get to the summary text
string summaryText = GetSummaryText(el.ParentGroup, "SummaryRow 1", "FreightAverage");
// Easier is to simple call built-in routine:
string summaryText = GridEngine.GetSummaryText(el.ParentGroup, "SummaryRow 1", "FreightAverage");
///
/// Demonstrates different alternatives to get to the summary text (strong typed vs GridSummaryColumnDescriptor.Format)
///
public string GetSummaryText(Group group, string summaryRowName, string summaryColumnName)
{
GridTable table = (GridTable) group.ParentTable;
GridTableDescriptor td = table.TableDescriptor;
GridSummaryRowDescriptor srd = td.SummaryRows[summaryRowName];
GridSummaryColumnDescriptor scd = srd.SummaryColumns[summaryColumnName];
return GetSummaryText(group, scd);
}
///
/// Demonstrates different alternatives to get to the summary text (strong typed vs GridSummaryColumnDescriptor.Format)
///
string GetSummaryText(Group group, GridSummaryColumnDescriptor scd)
{
GridTable table = (GridTable) group.ParentTable;
GridTableDescriptor td = table.TableDescriptor;
string summaryText = string.Empty;
bool use31Code = true;
if (use31Code)
{
if (scd != null)
{
// Option 1: GetDisplayText - this is actually the code used when you simply would call
// e.Style.Text = ((GridTable) table).GetSummaryText(group, "SummaryRow 1", "FreightAverage");
//
// Text is formatted as defined in GridSummaryColumnDescriptor.Format
summaryText = scd.GetDisplayText(group);
// or Option 2: Strong typed access to DoubleAggregateSummary.
DoubleAggregateSummary summary1 = (DoubleAggregateSummary) group.GetSummary(scd.SummaryDescriptor);
summaryText = string.Format("{0:c}", summary1.Average);
// or Option 3: Use reflection to get "Average" property of summary
summaryText = string.Format("{0:c}", group.GetSummaryProperty(scd.SummaryDescriptor, "Average"));
}
}
else
{
// This is the code you had to use in version 3.0 and earlier (still working but bit more complicate)
if (scd != null)
{
SummaryDescriptor sd1 = scd.SummaryDescriptor;
if (sd1 != null)
{
int indexOfSd1 = table.TableDescriptor.Summaries.IndexOf(sd1);
ISummary sum1 = group.GetSummaries(table)[indexOfSd1];
string text1 = scd.GetDisplayText(sum1);
summaryText = text1;
// - or - (access value directly)
// strong typed - you have to cast to Int32AggregateSummary.
DoubleAggregateSummary summary1 = (DoubleAggregateSummary) group.GetSummaries(table)[indexOfSd1];
summaryText = string.Format("{0:c}", summary1.Average);
}
}
}
return summaryText;
}
' Calling this method to demonstrate different alternatives to get to the summary text
summaryText = GetSummaryText(el.ParentGroup, "SummaryRow 1", "FreightAverage")
' Easier is to simple call built-in routine:
summaryText = GridEngine.GetSummaryText(el.ParentGroup, "SummaryRow 1", "FreightAverage")
'/
'/ Demonstrates different alternatives to get to the summary text (strong typed vs GridSummaryColumnDescriptor.Format)
'/
Public Function GetSummaryText(ByVal group As Group, ByVal summaryRowName As String, ByVal summaryColumnName As String) As String
Dim table As GridTable = CType(group.ParentTable, GridTable)
Dim td As GridTableDescriptor = table.TableDescriptor
Dim srd As GridSummaryRowDescriptor = td.SummaryRows(summaryRowName)
Dim scd As GridSummaryColumnDescriptor = srd.SummaryColumns(summaryColumnName)
Return GetSummaryText(group, scd)
End Function 'GetSummaryText
'/
'/ Demonstrates different alternatives to get to the summary text (strong typed vs GridSummaryColumnDescriptor.Format)
'/
Function GetSummaryText(ByVal group As Group, ByVal scd As GridSummaryColumnDescriptor) As String
Dim table As GridTable = CType(group.ParentTable, GridTable)
Dim td As GridTableDescriptor = table.TableDescriptor
Dim summaryText As String = string.Empty
Dim use31Code As Boolean = True
If use31Code Then
If Not (scd Is Nothing) Then
' Option 1: GetDisplayText - this is actually the code used when you simply would call
' e.Style.Text = ((GridTable) table).GetSummaryText(group, "SummaryRow 1", "FreightAverage");
'
' Text is formatted as defined in GridSummaryColumnDescriptor.Format
summaryText = scd.GetDisplayText(group)
' or Option 2: Strong typed access to DoubleAggregateSummary.
Dim summary1 As DoubleAggregateSummary = CType(group.GetSummary(scd.SummaryDescriptor), DoubleAggregateSummary)
summaryText = String.Format("{0:c}", summary1.Average)
' or Option 3: Use reflection to get "Average" property of summary
summaryText = String.Format("{0:c}", group.GetSummaryProperty(scd.SummaryDescriptor, "Average"))
End If
Else
' This is the code you had to use in version 3.0 and earlier (still working but bit more complicate)
If Not (scd Is Nothing) Then
Dim sd1 As SummaryDescriptor = scd.SummaryDescriptor
If Not (sd1 Is Nothing) Then
Dim indexOfSd1 As Integer = table.TableDescriptor.Summaries.IndexOf(sd1)
Dim sum1 As Syncfusion.Collections.BinaryTree.ITreeTableSummary = group.GetSummaries(table)(indexOfSd1)
Dim text1 As String = scd.GetDisplayText(sum1)
summaryText = text1
' - or - (access value directly)
' strong typed - you have to cast to Int32AggregateSummary.
Dim summary1 As DoubleAggregateSummary = CType(group.GetSummaries(table)(indexOfSd1), DoubleAggregateSummary)
summaryText = String.Format("{0:c}", summary1.Average)
End If
End If
End If
Return summaryText
End Function 'GetSummaryText
See Also
GetHashCode()
Serves as a hash function for a particular type.
Declaration
public override int GetHashCode()
Returns
| Type | Description |
|---|---|
| System.Int32 | A hash code for the current object. |
Overrides
GetName()
Gets the name of the descriptor.
Declaration
public override string GetName()
Returns
| Type | Description |
|---|---|
| System.String | Descriptor name. |
Overrides
GetSummary(Table, Element)
Returns the calculated summary value for a specific run-time row element in the table.
Declaration
public ITreeTableSummary GetSummary(Table table, Element row)
Parameters
| Type | Name | Description |
|---|---|---|
| Table | table | The parent table. |
| Element | row | The row in the table. |
Returns
| Type | Description |
|---|---|
| ITreeTableSummary | The ISummary object with summary values. |
GetSummaryDescriptorName()
Returns the name to be used for the SummaryDescriptor in the Summaries collection. The name is either the SummaryRowDescriptorName.SummaryColumnDescriporName or DataMember.SummaryType depending on whether a Name was specified for this SummaryColumnDescriptor or not.
Declaration
public string GetSummaryDescriptorName()
Returns
| Type | Description |
|---|---|
| System.String | Summary descriptor name. |
GetSummaryIndex()
Gets the index that can be used to look up summary values from the array returned by GetSummaryIndex() of the Table. Table.GetSummaries returns summaries in the same order as the SummaryDescriptors were added to the TableDescriptor.
Declaration
public int GetSummaryIndex()
Returns
| Type | Description |
|---|---|
| System.Int32 | An integer index to look up summary values from a summary array. |
InitializeFrom(GridSummaryColumnDescriptor)
Initializes this object and copies properties from another object. PropertyChanging and PropertyChanged events are raised for every property that is modified. If both objects are equal, no events are raised.
Declaration
public void InitializeFrom(GridSummaryColumnDescriptor other)
Parameters
| Type | Name | Description |
|---|---|---|
| GridSummaryColumnDescriptor | other | The source object. |
OnPropertyChanged(DescriptorPropertyChangedEventArgs)
Raises the PropertyChanged event.
Declaration
protected virtual void OnPropertyChanged(DescriptorPropertyChangedEventArgs e)
Parameters
| Type | Name | Description |
|---|---|---|
| DescriptorPropertyChangedEventArgs | e | A DescriptorPropertyChangedEventArgs that contains the event data. |
OnPropertyChanging(DescriptorPropertyChangedEventArgs)
Raises the PropertyChanging event.
Declaration
protected virtual void OnPropertyChanging(DescriptorPropertyChangedEventArgs e)
Parameters
| Type | Name | Description |
|---|---|---|
| DescriptorPropertyChangedEventArgs | e | A DescriptorPropertyChangedEventArgs that contains the event data. |
ResetAppearance()
Discards any changes for the Appearance object.
Declaration
public void ResetAppearance()
ResetDisplayColumn()
Discards any changes for the DisplayColumn property.
Declaration
public void ResetDisplayColumn()
ResetMaxLength()
Discards any changes for MaxLength.
Declaration
public void ResetMaxLength()
ResetStyle()
Discards any changes for the Style property.
Declaration
public void ResetStyle()
ShouldSerializeAppearance()
Determines whether Appearance has been modified and its contents should be serialized at design-time.
Declaration
public bool ShouldSerializeAppearance()
Returns
| Type | Description |
|---|---|
| System.Boolean | True if contents were changed; False otherwise. |
ShouldSerializeDisplayColumn()
Determines whether DisplayColumn has been modified and its value should be serialized at design-time.
Declaration
public bool ShouldSerializeDisplayColumn()
Returns
| Type | Description |
|---|---|
| System.Boolean | True if contents were changed; False otherwise. |
ShouldSerializeMaxLength()
Determines whether MaxLength has been modified and should be serialized at design-time.
Declaration
public bool ShouldSerializeMaxLength()
Returns
| Type | Description |
|---|---|
| System.Boolean | true if contents were changed; false otherwise. |
ShouldSerializeStyle()
Determines whether Style has been modified and its value should be serialized at design-time.
Declaration
public bool ShouldSerializeStyle()
Returns
| Type | Description |
|---|---|
| System.Boolean | True if contents were changed; False otherwise. |
Events
PropertyChanged
Occurs when a property is changed.
Declaration
public event DescriptorPropertyChangedEventHandler PropertyChanged
Event Type
| Type |
|---|
| DescriptorPropertyChangedEventHandler |
PropertyChanging
Occurs before a property is changed.
Declaration
public event DescriptorPropertyChangedEventHandler PropertyChanging
Event Type
| Type |
|---|
| DescriptorPropertyChangedEventHandler |
Explicit Interface Implementations
IStandardValuesProvider.GetStandardValues(PropertyDescriptor)
Declaration
ICollection IStandardValuesProvider.GetStandardValues(PropertyDescriptor propertyDescriptor)
Parameters
| Type | Name | Description |
|---|---|---|
| System.ComponentModel.PropertyDescriptor | propertyDescriptor |
Returns
| Type |
|---|
| System.Collections.ICollection |
IGridTableCellAppearanceSource.GetAppearance()
Declaration
GridTableCellAppearance IGridTableCellAppearanceSource.GetAppearance()
Returns
| Type |
|---|
| GridTableCellAppearance |
IGridTableCellAppearanceSource.GetBaseAppearance()
Declaration
GridTableCellAppearance IGridTableCellAppearanceSource.GetBaseAppearance()
Returns
| Type |
|---|
| GridTableCellAppearance |
IGridTableCellAppearanceSource.RaiseAppearanceChanged(GridTableCellStyleInfoChangedEventArgs)
Declaration
void IGridTableCellAppearanceSource.RaiseAppearanceChanged(GridTableCellStyleInfoChangedEventArgs e)
Parameters
| Type | Name | Description |
|---|---|---|
| GridTableCellStyleInfoChangedEventArgs | e |
IGridTableCellAppearanceSource.RaiseAppearanceChanging(GridTableCellStyleInfoChangedEventArgs)
Declaration
void IGridTableCellAppearanceSource.RaiseAppearanceChanging(GridTableCellStyleInfoChangedEventArgs e)
Parameters
| Type | Name | Description |
|---|---|---|
| GridTableCellStyleInfoChangedEventArgs | e |
ICloneable.Clone()
Declaration
object ICloneable.Clone()
Returns
| Type |
|---|
| System.Object |