Foxtable(狐表)用户栏目专家坐堂 → Filler与手工编码,哪个更好?


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

主题:Filler与手工编码,哪个更好?

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


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
Filler与手工编码,哪个更好?  发帖心情 Post By:2013/5/4 7:47:00 [只看该作者]

下面2个例子是帮助中的原例子,相对而言哪个更高效、执行速度更快,不占用系统资源?

示例四

还是统计不同产品的销售数量和金额,不过我们这次全部用一段代码完成。
将下面的代码复制到命令窗口执行即可:

'生成统计表
Dim
 dtb As New DataTableBuilder("统计")
dtb.AddDef(
"产品"GetType(String), 32)
dtb.AddDef(
"数量"GetType(Integer))
dtb.AddDef(
"金额"GetType(Double))
dtb.Build()

'填充数据

dim f As New Filler
f.SourceTable = 
DataTables("订单")
f.SourceCols = 
"产品" 
f.
DataTable = DataTables("统计")
f.DataCols = 
"产品" 
f.Fill()

'统计

For Each
 dr As Datarow In DataTables("统计").DataRows
    dr(
"数量") = DataTables("订单").Compute("Sum(数量)","[产品] = '" & dr("产品") & "'")
    dr(
"金额") = DataTables("订单").Compute("Sum(金额)","[产品] = '" & dr("产品") & "'")
Next
MainTable
Tables("统计"
)

当然,上面的代码如果改用GroupTableBuilder来实现,要容易很多。
之所以提供这样的例子,是为了让你知道,其实你有更多的选择,这样面对一些复杂的统计要求,你也能应付自如。

示例五

前面的统计,都使用了Filler来向统计表填充分组数据,实际上有时手工编码填充分组数据也是一个不错的选择。
还是以统计不同产品的销售数量和金额为例,如果手工编码填充分组数据,代码为:

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef(
"产品"Gettype(String), 32)
dtb.AddDef(
"数量"Gettype(Integer))
dtb.AddDef(
"金额"Gettype(Double))
dtb.Build()

For Each 
nm As String In DataTables("订单").GetUniqueValues("","产品")
    
Dim dr As DataRow = DataTables("统计").AddNew()
    dr(
"产品"
) = nm
    dr(
"数量") = DataTables("订单").Compute("Sum(数量)","[产品] = '" & dr("产品") & "'")
    dr("金额") = DataTables("订单").Compute("Sum(金额)","[产品] = '" & dr("产品") & "'")

Next
MainTable
Tables("统计")

代码是不是比示例四简洁很多呢,但哪个更好呢?


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/5/4 9:16:00 [只看该作者]

差不多,没必要纠结这个吧.如果想知道效率问题.弄个几万行测试一下就知道了.

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/5/4 9:16:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2013/5/4 9:23:00 [只看该作者]

fillter有时候不能按顺序填充。

 回到顶部