Quantcast
Channel: Telerik Forums RSS
Viewing all articles
Browse latest Browse all 94857

Sum of columns in GROUP FOOTERS

$
0
0

I have a radgrid I am using to create what is essentially a dynamic crosstab where I create date columns across the top, based on calculations at runtime.  I know many of the column names at design and have tried both autogenerating columns and not.  Some columns i do not know until runtime (week start dates).  I'm trying to sum the number in those dynamically created week columns and having no luck.  What would be my best option??

 

my aspx: 

    <telerik:RadGrid ID="RadGrid1"  runat="server"  AllowSorting="True" AllowMultiRowSelection="false" AllowPaging="True" ShowGroupPanel="false" AutoGenerateColumns="false" GridLines="none" pagesize="500">
                     <MasterTableView ShowGroupFooter="true" UseAllDataFields="True">
                <GroupByExpressions>
                    <telerik:GridGroupByExpression>
                        <SelectFields>
                            <telerik:GridGroupByField FieldAlias="Team" FieldName="Team"  HeaderValueSeparator=": "></telerik:GridGroupByField>
                        </SelectFields>
                        <GroupByFields>
                            <telerik:GridGroupByField FieldName="Team" SortOrder="ascending"></telerik:GridGroupByField>
                        </GroupByFields>
                    </telerik:GridGroupByExpression>
                    <telerik:GridGroupByExpression>
                        <SelectFields>
                            <telerik:GridGroupByField FieldAlias="SkillRequired" FieldName="SkillRequired" HeaderValueSeparator=": "></telerik:GridGroupByField>
                        </SelectFields>
                        <GroupByFields>
                            <telerik:GridGroupByField FieldName="SkillRequired"></telerik:GridGroupByField>
                        </GroupByFields>
                    </telerik:GridGroupByExpression>
                </GroupByExpressions>
                <Columns>
                           
                </Columns>
            </MasterTableView>
            <ClientSettings ReorderColumnsOnClient="True" AllowDragToGroup="True" AllowColumnsReorder="True">
                <Selecting AllowRowSelect="True"></Selecting>
                <Resizing AllowRowResize="True" AllowColumnResize="True" EnableRealTimeResize="True"
                    ResizeGridOnColumnResize="False"></Resizing>
            </ClientSettings>
            <GroupingSettings ShowUnGroupButton="true"></GroupingSettings>
        </telerik:RadGrid>

 

 

 

My Code Behind:

 

   Protected Sub ProcessResources()
        'Add columns for the weeks between the to and from dates
        If IsDate([To].Text) And IsDate(From.Text) Then
            Dim MyRecords As DataSet = LoadResources([From].Text, [To].Text)
            Dim myWeeks As ArrayList = ReturnWeeks(From.Text, [To].Text)
            For i = 0 To myWeeks.Count - 1
                Dim myColumn As New DataColumn
                MyRecords.Tables("Resources").Columns.Add(myWeeks.Item(i))
                'changed columns to be autogenerated in order to attempt summation of hours 
                'Dim boundColumn As GridBoundColumn
                'boundColumn = New GridBoundColumn()
                'RadGrid1.MasterTableView.Columns.Add(boundColumn)
                'boundColumn.Aggregate = GridAggregateFunction.Sum
                'boundColumn.FooterText = "Sum of Hours:"
                'boundColumn.DataField = myWeeks.Item(i)
                'boundColumn.HeaderText = myWeeks.Item(i)
            Next
            'Iterate through myRecords and add hours where the task is in the range 
            Dim j As Integer
            For j = 0 To MyRecords.Tables("Resources").Rows.Count - 1
                Dim estimatedStart As Date = MyRecords.Tables("resources").Rows(j).Item("estimatedstartdate")
                Dim estimatedEnd As Date = MyRecords.Tables("resources").Rows(j).Item("estimatedenddate")
                Dim hours As Integer = MyRecords.Tables("resources").Rows(j).Item("esthours")
                Dim k As Integer
                For k = 0 To myWeeks.Count - 1
                    Dim weekstart As Date = myWeeks.Item(k)
                    Dim Weekend As Date = DateAdd(DateInterval.DayOfYear, 6, weekstart)
                    If estimatedStart <= Weekend And estimatedEnd >= weekstart Then
                        MyRecords.Tables("Resources").Rows(j).Item(weekstart) = hours
                    Else

                        MyRecords.Tables("Resources").Rows(j).Item(weekstart) = 0
                    End If

                Next
            Next
            MyRecords.Tables("Resources").Columns.Remove("EstimatedSTartDate")
            MyRecords.Tables("Resources").Columns.Remove("EstimatedEndDate")

            RadGrid1.DataSource = MyRecords.Tables("Resources")
            RadGrid1.DataBind()

End If
    End Sub


Viewing all articles
Browse latest Browse all 94857

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>