## Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

• Help others & share knowledge
• Earn cash & points
Solved

# Changing summary value for UltraWinGrid

Posted on 2009-03-31
5,320 Views
I am using ultrawingrid which summary enabled showing the sum of the column. Now I want to make the summary value to zero and it should show only tthe sum of those rows which i select using check box.
0
Question by:srikanthreddyn143
• 4

LVL 17

Accepted Solution

ZeonFlash earned 125 total points
ID: 24033447
The summary value in a column is a read-only property, so you can't just force it to be a value.  Instead, you can create a custom summary calculator.

The following example assumes you have a column "Selected" (boolean) and a column "ValueColumn" (decimal).  After you check/uncheck the Selected cell, it will automatically re-calculate the summary (if it's in view)
``````	Private Class MyCustomSummarySettings
Implements ICustomSummaryCalculator

Private decTotal As Decimal = 0.0

Public Sub New()
End Sub

'Reset the summary total
Private Sub BeginCustomSummary(ByVal summarySettings As SummarySettings, ByVal rows As RowsCollection) Implements ICustomSummaryCalculator.BeginCustomSummary
decTotal = 0
End Sub

'Perform the summary
Private Sub AggregateCustomSummary(ByVal summarySettings As SummarySettings, ByVal row As UltraGridRow) Implements ICustomSummaryCalculator.AggregateCustomSummary
If Not row.Cells("Selected").Value Then Exit Sub

Try
decTotal += Convert.ToDecimal(row.GetCellValue(summarySettings.SourceColumn))
Catch ex As Exception
MsgBox("Error converting cell value to decimal", MsgBoxStyle.Critical)
End Try
End Sub

'Return the summary value
Private Function EndCustomSummary(ByVal summarySettings As SummarySettings, ByVal rows As RowsCollection) Implements ICustomSummaryCalculator.EndCustomSummary
Return decTotal
End Function
End Class

Private Sub UltraGrid1_InitializeLayout(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles UltraGrid1.InitializeLayout
Dim summary As Infragistics.Win.UltraWinGrid.SummarySettings

'Create a new summary object for the band

summary.SummaryType = SummaryType.Custom
summary.SourceColumn = UltraGrid1.DisplayLayout.Bands(0).Columns("ValueColumn")
summary.CustomSummaryCalculator = New MyCustomSummarySettings
End Sub
``````
0

LVL 11

Author Comment

ID: 24034236
Hi Zeon,

Thanks for your reply.It was throwing an exception "Cannot convert 'True' to Long" when i used code in this way.

`````` 'Perform the summary
Private Sub AggregateCustomSummary(ByVal summarySettings As SummarySettings, ByVal row As UltraGridRow) Implements ICustomSummaryCalculator.AggregateCustomSummary
Try
If Not row.Cells("CB").Value.ToString Then
Exit Sub
Else
decTotal += Convert.ToDecimal(row.Cells("Amount").Value)
End If
Catch ex As Exception
ExceptionManager.Publish(ex)
End Try
End Sub
``````
0

LVL 11

Author Comment

ID: 24034252
It was throwing exception At line "If Not row.Cells("CB").Value"
0

LVL 11

Author Comment

ID: 24034831
Thanks.
Its working fine when i kept "If Not row.Cells("CB").Value = "True" Then ". But how can I have the summary as a footer. Right now it is scrolling with the datagrid.
0

LVL 11

Author Comment

ID: 24038702
Thank you. Thats fine.
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question