以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]统计问题优化  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=58613)

--  作者:good131577
--  发布时间:2014/10/20 20:54:00
--  [求助]统计问题优化
Dim t As Table = Forms("装配窗体").Controls("Table1").Table
Dim b As New GroupTableBuilder("统计表1", DataTables("装配表"))
b.Groups.AddDef("用户编号") \'根据用户分组
b.Totals.AddDef("配比", AggregateEnum.Sum, "总数量") \'对数量进行统计
t.DataSource = b.BuildDataSource \'生成统计表
t.DataTable.DataCols.Add("实际产量", Gettype(Integer))

有个问题~写在DataColChanged事件里面  表格数据行比较庞大 有2000多行~ 然后改某一行的配比值 会计算所有用户的统计数据 会卡个十几秒 才有反应~太慢了
我窗口上 有个控件能显示当前编辑的用户编号
能不能 只对当前修改的用户编号 重新进行累加统计  因为其他用户的计算应该是多余的~

--  作者:有点甜
--  发布时间:2014/10/20 21:13:00
--  

 没有必要重复多次生成吧?你可以做一个按钮,需要的时候刷新数据。

 

 如果要加条件,就加入代码,比如 b.Filter = "用户编号 = \'" & 某控件.Text & "\'"


--  作者:good131577
--  发布时间:2014/10/20 21:27:00
--  问题~
Dim b As New GroupTableBuilder("统计表1", DataTables("装配表"))

这个生成 是根据DataTables("装配表")生成的~ 能根据 Tables("装配表") 生成统计表格吗???

它要实时显示 每个客户配比的统计情况  在改变客户配比列的时候 需要重新统计生成吧  要不然我那 统计表的值是不变的~

--  作者:有点甜
--  发布时间:2014/10/20 21:29:00
--  

没必要实时生成,需要数据的时候,点一下按钮重新生成。

 

一样的,你只需要设置一下 b.Filter = Tables("装配表").Filter