以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  利用DataList显示统计结果  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=2094)

--  作者:狐狸爸爸
--  发布时间:2009/3/14 3:07:00
--  利用DataList显示统计结果

利用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

 

 


--  作者:菜鸟foxtable
--  发布时间:2009/3/14 8:34:00
--  

顶起

 

老爹,如何直接把DATALIST显示的结果表导出EXCEL?

[此贴子已经被作者于2009-3-14 8:36:55编辑过]

--  作者:kylin
--  发布时间:2009/3/14 9:06:00
--  

--  作者:cpayinyuan
--  发布时间:2009/3/14 9:48:00
--  

    顶!希望进一步增强DataList的功能,扩大DataList的使用范围!

[此贴子已经被作者于2009-3-14 9:51:54编辑过]

--  作者:老有所乐
--  发布时间:2009/3/14 17:23:00
--  

这个好


--  作者:易服
--  发布时间:2009/3/14 17:23:00
--  
参照上面例子,统计后小数溢出(原始数据只有一位小数)

图片点击可在新窗口打开查看此主题相关图片如下:小数溢出.jpg
图片点击可在新窗口打开查看

--  作者:czy
--  发布时间:2009/3/14 20:14:00
--  

你也是导入的数据吧。

按另一贴老六的方法处理一下应该不会出现这种结果的。


--  作者:易服
--  发布时间:2009/3/14 20:36:00
--  
不是导入的,利用DataList显示统计结果。由统计按钮生成
Dim g As New GroupTableBuilder("分组统计", DataTables("总览"))
g.Groups.AddDef("造林年度")
g.Groups.AddDef("乡名")
g.Groups.AddDef("村名")
g.Groups.AddDef("造林树种_主要树种","主要树种")\'添加村名列用于分组
g.Totals.AddDef("小班号",AggregateEnum.Count,"小班个数")
g.Totals.AddDef("设计面积","面积合计") \'添加数量列用于统计
g.Totals.AddDef("退耕地") \'添加数量列用于统计
g.Totals.AddDef("退耕生态林") \'添加数量列用于统计
g.Totals.AddDef("退耕经济林") \'添加数量列用于统计
g.Totals.AddDef("荒山") \'添加数量列用于统计
g.Totals.AddDef("荒山生态林") \'添加数量列用于统计
g.Totals.AddDef("荒山经济林") \'添加数量列用于统计
g.Totals.AddDef("生态林") \'添加数量列用于统计
g.Totals.AddDef("经济林") \'添加数量列用于统计
g.Totals.AddDef("混交面积") \'添加数量列用于统计
g.Totals.AddDef("混交退耕") \'添加数量列用于统计
g.Totals.AddDef("混交荒山") \'添加数量列用于统计
g.Totals.AddDef("乔木退耕") \'添加数量列用于统计
g.Totals.AddDef("乔木荒山") \'添加数量列用于统计
g.Totals.AddDef("灌木退耕") \'添加数量列用于统计
g.Totals.AddDef("灌木荒山") \'添加数量列用于统计
g.Totals.AddDef("灌木面积") \'添加数量列用于统计
g.Totals.AddDef("乔木面积") \'添加数量列用于统计
g.Totals.AddDef("国有退耕") \'添加数量列用于统计
g.Totals.AddDef("国有荒山") \'添加数量列用于统计
g.Totals.AddDef("集体退耕") \'添加数量列用于统计
g.Totals.AddDef("集体荒山") \'添加数量列用于统计
g.Totals.AddDef("个人退耕") \'添加数量列用于统计
g.Totals.AddDef("个人荒山") \'添加数量列用于统计
g.Totals.AddDef("平坡退耕") \'添加数量列用于统计
g.Totals.AddDef("退耕斜坡") \'添加数量列用于统计
g.Totals.AddDef("缓坡退耕") \'添加数量列用于统计
g.Totals.AddDef("缓坡荒山") \'添加数量列用于统计
g.Totals.AddDef("斜坡退耕") \'添加数量列用于统计
g.Totals.AddDef("斜坡荒山") \'添加数量列用于统计
g.Totals.AddDef("陡坡退耕") \'添加数量列用于统计
g.Totals.AddDef("陡坡荒山") \'添加数量列用于统计
g.Totals.AddDef("荒山营造") \'添加数量列用于统计
g.Totals.AddDef("荒山管护") \'添加数量列用于统计
g.Totals.AddDef("荒山种苗") \'添加数量列用于统计
g.Totals.AddDef("荒山设计") \'添加数量列用于统计
g.Totals.AddDef("退耕营造") \'添加数量列用于统计
g.Totals.AddDef("退耕管护") \'添加数量列用于统计
g.Totals.AddDef("退耕种苗") \'添加数量列用于统计
g.Totals.AddDef("退耕设计") \'添加数量列用于统计
g.Totals.AddDef("用工量") \'添加数量列用于统计
g.Totals.AddDef("现金补助") \'添加数量列用于统计
g.Totals.AddDef("种苗费") \'添加数量列用于统计
g.Totals.AddDef("管护费") \'添加数量列用于统计
g.Totals.AddDef("粮食折价") \'添加数量列用于统计
g.Totals.AddDef("投资概算") \'添加数量列用于统计
g.Totals.AddDef("设计费") \'添加数量列用于统计
g.Totals.AddDef("成活率合格_已抚","合格已抚") \'添加数量列用于统计
g.Totals.AddDef("成活率合格_未抚","合格未抚") \'添加数量列用于统计
g.Totals.AddDef("需补植_已抚","补植已抚") \'添加数量列用于统计
g.Totals.AddDef("需补植_未抚","补植未抚") \'添加数量列用于统计
g.Totals.AddDef("重造面积") \'添加数量列用于统计
g.Totals.AddDef("空白面积") \'添加数量列用于统计
g.Totals.AddDef("少面积") \'添加数量列用于统计
g.Totals.AddDef("未抚育面积") \'添加数量列用于统计
g.Totals.AddDef("退耕合格已抚") \'添加数量列用于统计
g.Totals.AddDef("退耕合格未抚") \'添加数量列用于统计
g.Totals.AddDef("退耕补植已抚") \'添加数量列用于统计
g.Totals.AddDef("退耕补植未抚") \'添加数量列用于统计
g.Totals.AddDef("退耕重造面积") \'添加数量列用于统计
g.Totals.AddDef("退耕空白面积") \'添加数量列用于统计
g.Totals.AddDef("退耕少面积") \'添加数量列用于统计
g.Totals.AddDef("退耕未抚育面积") \'添加数量列用于统计
g.Totals.AddDef("补植补造需苗") \'添加数量列用于统计
g.Totals.AddDef("实生苗") \'添加数量列用于统计
g.Totals.AddDef("嫁接苗") \'添加数量列用于统计
g.Totals.AddDef("种苗_需苗量","需苗量") \'添加数量列用于统计
g.Totals.AddDef("二期生态林") \'添加数量列用于统计
g.Totals.AddDef("二期经济林") \'添加数量列用于统计
g.Totals.AddDef("二期现金补助") \'添加数量列用于统计
g.Totals.AddDef("二期粮食折价") \'添加数量列用于统计
g.VerticalTotal = True \'自动垂直汇总
With e.Form.Controls("DataList1")
    .DataTable = g.Build(True) \'注意参数必须设为True
    .Build()
End With


--  作者:sohper
--  发布时间:2009/10/12 23:07:00
--  
谢谢!学习了