1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
'首先生成统计表 Dim
dt
As
DataTable Dim
b
As
New
GroupTableBuilder("统计表1",DataTables("订单")) b.Groups.AddDef("日期",DateGroupEnum.Year,"年") b.Groups.AddDef("日期",DateGroupEnum.Month,"月") b.Groups.AddDef("产品") b.Totals.AddDef("客户",AggregateEnum.Count,"订单数") '根据客户列来统计记录数,也就是订单数 dt = b.Build(True) '参数设置为True,生成一个临时表,不在主界面显示 '然后根据统计表生成目录树 Dim
trv
As
WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildTree(dt, "年|月|产品") trv.StopRedraw For
Each
nd
As
WinForm.TreeNode
In
trv.AllNodes Dim
Year
As
Integer = nd.DataRow("年") Dim
Month
As
Integer = nd.DataRow("月") Dim
Product
As
String = nd.DataRow("产品") Select
Case
nd.Level Case
0 nd.Text = nd.text
&
"年("
&
dt.Compute("Sum(订单数)","年 = "
&
Year) &
"条)" Case
1 nd.Text = nd.text
&
"月("
&
dt.Compute("Sum(订单数)","年 = "
&
Year
&
" And 月 = "
&
Month) &
"条)" Case
2 nd.Text = nd.text
&
"("
&
nd.DataRow("订单数") &
"条)" End
Select Next trv.Nodes.Insert("显示所有行","显示所有行("
&
dt.Compute("Sum(订单数)") &
"条)",0) trv.ResumeRedraw |
以上是统计整个表所有记录,假如订单中有100000条记录,若都加载太费时间了,我只想加载近一个月的或最近1000条记录如何写?
[此贴子已经被作者于2018/12/19 22:34:35编辑过]