Foxtable(狐表)用户栏目专家坐堂 → 利用DataList显示统计结果


  共有23668人关注过本帖树形打印复制链接

主题:利用DataList显示统计结果

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
利用DataList显示统计结果  发帖心情 Post By:2009/3/14 3:07:00 [只看该作者]

利用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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/3/14 8:34:00 [只看该作者]

顶起

 

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

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

 回到顶部
帅哥哟,离线,有人找我吗?
kylin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 F6
等级:狐精 帖子:3030 积分:19188 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2009/3/14 9:06:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/3/14 9:48:00 [只看该作者]

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

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

 回到顶部
帅哥哟,离线,有人找我吗?
老有所乐
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:6673 威望:0 精华:1 注册:2008/9/1 11:46:00
  发帖心情 Post By:2009/3/14 17:23:00 [只看该作者]

这个好


 回到顶部
帅哥哟,离线,有人找我吗?
易服
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2009/3/14 17:23:00 [只看该作者]

参照上面例子,统计后小数溢出(原始数据只有一位小数)

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

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/14 20:14:00 [只看该作者]

你也是导入的数据吧。

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


 回到顶部
帅哥哟,离线,有人找我吗?
易服
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:72 积分:614 威望:0 精华:0 注册:2009/5/23 10:22:00
  发帖心情 Post By:2009/10/12 23:07:00 [只看该作者]

谢谢!学习了

 回到顶部