I'm having a problem calculating my custom aggregate sum function for nested groups.
For example, I have a product group, a product, and then several rows pertaining to that product (so there are two groupings: the main product group > then the individual product and its data). Then, for each grouping I have a footer which calculates the sum of the column based on the value of another column in that row.
What I'd like to see is something like this assuming a product group with 2 products. It would calculate the footer total for each product in that column if the first column's value is say 'Row 3' or 'Row 4' and then for the top product grouping (for 'Product Group 1') would calculate the values from the other footers.
Product Group 1
Product 1
Row 1 | 1 | 1 | 1 | 1 |
Row 2 | 1 | 1 | 1 | 1 |
Row 3 | 2 | 2 | 2 | 1 |
Row 4 | 2 | 2 | 1 | 1 |
[Footer] | 4 | 4 | 3 | 2 |
Product 2
Row 1 | 1 | 1 | 1 | 1 |
Row 2 | 1 | 1 | 1 | 1 |
Row 3 | 2 | 2 | 2 | 1 |
Row 4 | 2 | 2 | 1 | 1 |
[Footer] | 4 | 4 | 3 | 2 |
[Footer] | 8 | 8 | 6 | 4 |
I have it set up so each product's footer calculates the individual product's footer correctly, but not the top most group footer (the product grouping), it only calculates the last individual product's total as in the screenshot I attached. I'm not quite sure how to grab the totals from previous footers of the same grouping.
Here is my custom aggregate function as is now:
Sorry if this is a dumb question, but I'm a little stuck here.
For example, I have a product group, a product, and then several rows pertaining to that product (so there are two groupings: the main product group > then the individual product and its data). Then, for each grouping I have a footer which calculates the sum of the column based on the value of another column in that row.
What I'd like to see is something like this assuming a product group with 2 products. It would calculate the footer total for each product in that column if the first column's value is say 'Row 3' or 'Row 4' and then for the top product grouping (for 'Product Group 1') would calculate the values from the other footers.
Product Group 1
Product 1
Row 1 | 1 | 1 | 1 | 1 |
Row 2 | 1 | 1 | 1 | 1 |
Row 3 | 2 | 2 | 2 | 1 |
Row 4 | 2 | 2 | 1 | 1 |
[Footer] | 4 | 4 | 3 | 2 |
Product 2
Row 1 | 1 | 1 | 1 | 1 |
Row 2 | 1 | 1 | 1 | 1 |
Row 3 | 2 | 2 | 2 | 1 |
Row 4 | 2 | 2 | 1 | 1 |
[Footer] | 4 | 4 | 3 | 2 |
[Footer] | 8 | 8 | 6 | 4 |
I have it set up so each product's footer calculates the individual product's footer correctly, but not the top most group footer (the product grouping), it only calculates the last individual product's total as in the screenshot I attached. I'm not quite sure how to grab the totals from previous footers of the same grouping.
Here is my custom aggregate function as is now:
Protected Sub RadGrid1_CustomAggregate(ByVal sender As Object, ByVal e As GridCustomAggregateEventArgs) Handles RadGrid1.CustomAggregate If e.Column.UniqueName = "Row" Then e.Result = "" Else Dim length As Integer = RadGrid1.MasterTableView.GetItems(GridItemType.GroupHeader).Length For i As Integer = 0 To length - 1 Dim total As Double = 0 Dim groupHeader As GridGroupHeaderItem = DirectCast(RadGrid1.MasterTableView.GetItems(GridItemType.GroupHeader)(i), GridGroupHeaderItem) Dim children As GridItem() = groupHeader.GetChildItems() For Each child As GridItem In children If TypeOf child Is GridDataItem Then Dim childItem As GridDataItem = TryCast(child, GridDataItem) Dim rowText As String = childItem.Item("Row").Text If rowText = "Row3" OrElse rowText = "Row4" Then total += childItem.Item("Value").Text End If End If Next e.Result = total Next End If End SubSorry if this is a dumb question, but I'm a little stuck here.