老师好!
生成的统计表及目录树如下图,怎样使目录树中的第三层节点,按照节点中的统计数从大到小排序。
谢谢!

此主题相关图片如下:排序.jpg

'首先生成统计表
Dim dt As DataTable
Dim b As New GroupTableBuilder("统计表1",DataTables("复核表"))
b.Groups.AddDef("报送年份")
b.Groups.AddDef("合作单位")
b.Groups.AddDef("复核人")
b.Totals.AddDef("报告号",AggregateEnum.Count,"次数") '根据客户列来统计记录数,也就是订单数
dt = b.Build(True) '参数设置为True,生成一个临时表,不在主界面显示
Tables("客户查询_Table1").DataSource= b.BuildDataSource() '统计表放入指定窗口表
Tables("客户查询_Table1").Sort = "次数 DESC"
'然后根据统计表生成目录树
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "报送年份|复核人|合作单位")
trv.StopRedraw
For Each nd As WinForm.TreeNode In trv.AllNodes
Dim Product1 As String = nd.DataRow("报送年份")
Dim Product2 As String = nd.DataRow("复核人")
Dim Product3 As String = nd.DataRow("合作单位")
Select Case nd.Level
Case 0
nd.Text = nd.text & "(" & dt.Compute("Sum(次数)","报送年份 = '" & nd.Text & "'") & ")"
Case 1
nd.Text = nd.text & "(" & dt.Compute("Sum(次数)","报送年份 = '" & Product1 & "' And 复核人= '" & nd.Text & "'") & ")"
Case 2
nd.Text = nd.text & "(" & dt.Compute("Sum(次数)","报送年份 = '" & Product1 & "' And 复核人= '" & Product2 & "' And 合作单位= '" & nd.Text & "'") & ")"
End Select
Next
trv.Nodes.Insert("显示所有行","显示所有行(" & dt.Compute("Sum(次数)") & ")",0)
trv.ResumeRedraw