Hello, I have one syncfusion GridGroupingControl which I have some grouped columns with custom summaries appearing when the groups are collapsed. I am trying to sort the column by both the summary and the child rows.
In order to have the columns sorted by the summary. I used the following code in the routine that handles the event TableControlQueryAllowSortColumn of the control:
' tem coluna agrupando?
If (Me.TableDescriptor.GroupedColumns.Count > 0) Then
' pega a coluna clicada
_ColunaNomeClicada = e.Column.FieldDescriptor.Name
' coluna clicada está no conjunto de colunas sumarizadas?
If (Me.TableDescriptor.SummaryRows.Count > 0) AndAlso _
(Me.TableDescriptor.SummaryRows.Item(0).SummaryColumns.Contains(_ColunaNomeClicada) = True) Then
' pega a coluna sumarizada
_ColunaSumarizada = Me.TableDescriptor.SummaryRows.Item(0).SummaryColumns(_ColunaNomeClicada)
' determina o nome da propriedade de sumarizacao
' de acordo com o tipo de sumarizacao
Select Case _ColunaSumarizada.SummaryType
Case SummaryType.Custom
_PropriedadeSumarizacao = "Valor"
Case SummaryType.DoubleAggregate
_PropriedadeSumarizacao = "Sum"
Case Else
_PropriedadeSumarizacao = "Sum"
End Select ' de acordo com o tipo de sumarizacao
' eh a coluna que esta na ordenacao?
If (Me.TableDescriptor.SortedColumns.Count > 0) AndAlso _
(Me.TableDescriptor.SortedColumns.Contains(_ColunaSumarizada.Name) = True) Then
' verifica a ordenacao atual
If (Me.TableDescriptor.SortedColumns.Item(_ColunaSumarizada.Name).SortDirection = System.ComponentModel.ListSortDirection.Ascending) Then
_ColunaDirecaoOrdenacao = System.ComponentModel.ListSortDirection.Descending
Else
_ColunaDirecaoOrdenacao = System.ComponentModel.ListSortDirection.Ascending
End If ' coluna tem uma tag com a ordenacao?
End If ' eh a coluna que esta na ordenacao?
' percorre colunas agrupadas
For Each _ColunaOrdenacao In Me.TableDescriptor.GroupedColumns
' coloca a ordenacao definida para todos os niveis de agrupamento
_ColunaOrdenacao.SetGroupSummarySortOrder( _
_ColunaSumarizada.GetSummaryDescriptorName, _
_PropriedadeSumarizacao, _
_ColunaDirecaoOrdenacao)
Next ' percorre colunas agrupadas
it solves the problem of sorting by the summary values but not the children rows. This code is found in many syncfusion samples and forum posts.