-- nueva extensión "GroupobyDt"
This commit is contained in:
@@ -1195,6 +1195,24 @@ Namespace Extensiones
|
||||
End If
|
||||
|
||||
Return TmpDt
|
||||
End Function
|
||||
|
||||
<Runtime.CompilerServices.Extension()>
|
||||
Public Function GroupByDt(dtt As DataTable, ByVal RowFilter As String, ByVal Orderby As String, ByVal GroupByColumns As String(), ByVal AggregateColumn As String) As DataTable
|
||||
Dim dv As DataView = New DataView(dtt, RowFilter, Orderby, DataViewRowState.CurrentRows)
|
||||
Dim dtGroup As DataTable = dv.ToTable(True, GroupByColumns)
|
||||
dtGroup.Columns.Add("TotalCount", GetType(Integer))
|
||||
dtGroup.Columns.Add("TotalSum", GetType(Decimal))
|
||||
Dim filtros As New List(Of String)
|
||||
For Each dr As DataRow In dtGroup.Rows
|
||||
For Each col As String In GroupByColumns
|
||||
filtros.Add($"{col}='{dr(col)}'")
|
||||
Next
|
||||
dr("TotalCount") = dtt.Compute($"Count({AggregateColumn})", String.Join(" AND ", filtros))
|
||||
dr("TotalSum") = dtt.Compute($" SUM({AggregateColumn})", String.Join(" AND ", filtros))
|
||||
Next
|
||||
|
||||
Return dtGroup
|
||||
End Function
|
||||
|
||||
<Runtime.CompilerServices.Extension()>
|
||||
|
||||
Reference in New Issue
Block a user