帮助:
用SQL语言虽然可以很灵活地对未加载的数据进行统计,但是不是每个人都能掌握好SQL的,相对对来说,Foxtable提供GroupTableBuilder和CrossTableBuilder要容易掌握得多,而且更为灵活。
我们可以综合利用二者的优势,利用ExecuteReader将数据加载到一个临时的表中,然后利用GroupTableBuilder和CrossTableBuilder对这个表进行统计。
例如:
Dim
cd As New SQLCommand
Dim dt as DataTable
cd.CommandText = "Select * From {订单}"
dt = cd.ExecuteReader()
Dim cs As New CrossTableBuilder("统计表",dt)
cs.HGroups.AddDef("客户")
cs.VGroups.AddDef("产品","产品_{0}")
cs.Totals.AddDef("数量")
With e.Form.Controls("DataList1")
.DataTable = cs.Build(TRue)
.Build
End With
代码的原理很简单,首先将全部订单加载到临时表dt中,然后定义一个交叉表生成器,对这个临时表进行交叉统计,并将结果显示在窗口的DataList控件中