以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于分组统计(已解决)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=69671)

--  作者:yyzlxc
--  发布时间:2015/6/9 10:06:00
--  [求助]关于分组统计(已解决)
如何统计各工位在某批次出现的次数(每个批次相同),并以此除数量得到每个工位的产量(即在统计表增加"次数"和"产量"两列,正确数据产量全部为50)。请各位老师指教,谢谢!!


图片点击可在新窗口打开查看此主题相关图片如下:捕获b.jpg
图片点击可在新窗口打开查看


Dim b As New GroupTableBuilder("统计表1",DataTables("表A"))
b.Groups.AddDef("工位") \'根据产品分组
b.Totals.AddDef("数量") \'对数量进行统计
b.Build \'生成统计表
MainTable = Tables("统计表1")

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.table


[此贴子已经被作者于2015/6/9 12:36:56编辑过]

--  作者:大红袍
--  发布时间:2015/6/9 10:10:00
--  

Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("工位")
g.Groups.AddDef("批次")
g.Totals.AddDef("数量")

g.Filter = "批次 = \'2\'"
g.Build()
MainTable = Tables("统计表1")


--  作者:大红袍
--  发布时间:2015/6/9 10:13:00
--  

这个意思?

 

Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("工位")
g.Groups.AddDef("批次")
g.Totals.AddDef("工位", AggregateEnum.Count, "次数")
g.Totals.AddDef("数量")
g.Totals.AddDef("数量", AggregateEnum.Average, "平均")
g.Build()
MainTable = Tables("统计表1")


--  作者:yyzlxc
--  发布时间:2015/6/9 10:16:00
--  
谢谢大红袍老师的回复,要求在统计表中增加产量列,值均为50,好像没有实现此要求。
--  作者:大红袍
--  发布时间:2015/6/9 10:22:00
--  
  根据什么计算
[此贴子已经被作者于2015/6/9 10:27:06编辑过]

--  作者:大红袍
--  发布时间:2015/6/9 10:27:00
--  

Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("工位")
g.Groups.AddDef("批次")
g.Totals.AddDef("工位", AggregateEnum.Count, "次数")
g.Totals.AddDef("数量")
g.Totals.AddDef("数量", AggregateEnum.Average, "平均")
g.Build()

g = New GroupTableBuilder("统计表1", DataTables("统计表1"))
g.Groups.AddDef("工位")
g.Totals.AddDef("数量")
g.Totals.AddDef("平均","产量")
g.Totals.AddDef("次数", AggregateEnum.Average)
g.Build()
MainTable = Tables("统计表1")

MainTable = Tables("统计表1")


--  作者:yyzlxc
--  发布时间:2015/6/9 10:34:00
--  
通过以下代码,可以实现所需效果,如何简化代码,请老师指教,谢谢!!
Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("工位")
g.Groups.AddDef("批次")
g.Totals.AddDef("工位", AggregateEnum.Count, "次数")
g.Totals.AddDef("数量")
g.Totals.AddDef("数量", AggregateEnum.Average, "平均")
g.Build()

Dim b As New GroupTableBuilder("统计表2",DataTables("统计表1"))
b.Groups.AddDef("工位") \'根据产品分组
b.Totals.AddDef("数量") \'对数量进行统计
b.Totals.AddDef("平均","产量") \'对数量进行统计
b.Build \'生成统计表
MainTable = Tables("统计表2")



图片点击可在新窗口打开查看此主题相关图片如下:捕获c.jpg
图片点击可在新窗口打开查看



--  作者:大红袍
--  发布时间:2015/6/9 10:36:00
--  

代码是最简的了。

 

Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("工位")
g.Groups.AddDef("批次")
g.Totals.AddDef("工位", AggregateEnum.Count, "次数")
g.Totals.AddDef("数量")
g.Totals.AddDef("数量", AggregateEnum.Average, "平均")
g.Build()

g = New GroupTableBuilder("统计表1", DataTables("统计表1"))
g.Groups.AddDef("工位")
g.Totals.AddDef("数量")
g.Totals.AddDef("平均","产量")
g.Build()
MainTable = Tables("统计表1")


--  作者:y2287958
--  发布时间:2015/6/9 10:42:00
--  
学习,谢谢。
非常好的思路,可以无限扩展。

--  作者:狐狸爸爸
--  发布时间:2015/6/9 11:00:00
--  
呵呵,完美一下,不会产生两个表:
 
Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("工位")
g.Groups.AddDef("批次")
g.Totals.AddDef("工位", AggregateEnum.Count, "次数")
g.Totals.AddDef("数量")
g.Totals.AddDef("数量", AggregateEnum.Average, "平均")
Dim g2  As  New GroupTableBuilder("统计表1", g.Build(False))
g2.Groups.AddDef("工位")
g2.Totals.AddDef("数量")
g2.Totals.AddDef("平均","产量")
g2.Build()
MainTable = Tables("统计表1")

[此贴子已经被作者于2015/6/9 11:01:04编辑过]