Foxtable(狐表)用户栏目专家坐堂 → 统计效率的问题


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

主题:统计效率的问题

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


加好友 发短信
等级:幼狐 帖子:72 积分:852 威望:0 精华:0 注册:2021/5/20 0:18:00
统计效率的问题  发帖心情 Post By:2023/2/9 21:26:00 [只看该作者]

新建了一个数据表,然后用手工编码写了个统计代码,但是统计的效率好低,统计20行数据要用时10秒,但用foxtable自带的统计工具却可以秒开,不知道哪里出问题了,求解。
Dim dr As DataRow = Args(0)
Dim dt As DataTable = DataTables("生产过程进度追溯表")
dr("投料数量") = dt.SQLCompute("Sum(投料数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("入库数量") = dt.SQLCompute("Sum(入库数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("报废数量") = dt.SQLCompute("Sum(报废数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("粗车") = dt.SQLCompute("Sum(粗车完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("割圈") = dt.SQLCompute("Sum(割圈完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("镗孔") = dt.SQLCompute("Sum(镗孔完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("铰孔") = dt.SQLCompute("Sum(铰孔完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("半精车") = dt.SQLCompute("Sum(半精车完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("精车I") = dt.SQLCompute("Sum(精车I完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("精车II") = dt.SQLCompute("Sum(精车II完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("光刀") = dt.SQLCompute("Sum(光刀完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("滚道淬") = dt.SQLCompute("Sum(滚道淬火完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("车圆弧") = dt.SQLCompute("Sum(车圆弧完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("齿加工") = dt.SQLCompute("Sum(齿加工完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("齿倒角") = dt.SQLCompute("Sum(齿轮倒角完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("齿淬火") = dt.SQLCompute("Sum(齿轮淬火完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("整形") = dt.SQLCompute("Sum(整形完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("孔加工") = dt.SQLCompute("Sum(孔加工完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("打油眼") = dt.SQLCompute("Sum(打油眼完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("油眼攻丝") = dt.SQLCompute("Sum(油眼攻丝完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("打堵头眼") = dt.SQLCompute("Sum(打堵头眼完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("堵头攻丝") = dt.SQLCompute("Sum(堵头眼攻丝完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("车磨") = dt.SQLCompute("Sum(车磨完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("装配") = dt.SQLCompute("Sum(装配完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("清洗") = dt.SQLCompute("Sum(清洗完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("打标") = dt.SQLCompute("Sum(打标完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("打标牌") = dt.SQLCompute("Sum(打标牌完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("喷漆") = dt.SQLCompute("Sum(喷漆完成数量)", "备用2 = '" & dr("销售计划号") & "'")
dr("包装") = dt.SQLCompute("Sum(包装完成数量)", "备用2 = '" & dr("销售计划号") & "'")

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/9 22:00:00 [只看该作者]

就应该使用统计工具呀:http://www.foxtable.com/webhelp/topics/1623.htm
Dim dr As DataRow = Args(0)
Dim g As New GroupTableBuilder("统计表1"DataTables("生产过程进度追溯表"))
g.FromServer = True
g.Groups.AddDef("
备用2")
g.Totals.AddDef("
投料数量")
g.Totals.AddDef("
入库数量")
……
g.filter = "备用2 = '" & dr("销售计划号") & "'"
dim dt as datatable = g.Build(true)
dim dr2 as datarow = dt.datarows(0)
dr("投料数量") = dr2("投料数量")
dr("入库数量") = dr2("入库数量")
……

 回到顶部