利用DataList显示统计结果
GroupTableBuilder用于进行分组统计,CrossTableBuilder用于进行交叉统计,这两个类使用起来很方便,几乎可以随心所欲地得到任何统计结果。
这两个类就是生成的统计结果,都是直接以表的形式显示在主界面中。
有的时候,我们需要更专业的界面,希望统计结果不以表的形式显示在主界面中,而是仅仅显示在窗口的DataList控件中,那么如何来实现呢?
GroupTableBuilder和CrossTableBuilder的Build方法都有一个可选参数,如果将该参数设为True,那么Build方法只返回一个临时的DataTable,而不会显示在主界面中。
有了这个特性,那么我们前面的要求,可以很简单地实现。
示例一
单击某各按钮,希望在DataList中显示每个产品的销售额,按钮的Click事件代码可以设为:
Dim b As New GroupTableBuilder("统计表1",DataTables("订单"))
b.Groups.AddDef("产品")
b.Totals.AddDef("数量")
With e.Form.Controls("DataList1")
.DataTable = b.Build(True) '注意参数必须设为True
.Build()
End With
示例二
在DataList中以交叉表的形式显示每个客户订购不同产品的销售额:
Dim
b As New CrossTableBuilder("统计表1",DataTables("订单"))
b.HGroups.AddDef("客户")
b.VGroups.AddDef("产品","产品_{0}")
b.Totals.AddDef("数量")
With e.Form.Controls("DataList1")
.DataTable = b.Build(True)
.Build()
End With