Foxtable(狐表)用户栏目专家坐堂 → 求和代码优化


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

主题:求和代码优化

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/22 22:15:00 [显示全部帖子]

用sql:

select Sum(直接材料_配件成本) as 直接材料_配件费用,Sum(加工单价) as 直接工资_直接人工,..... from 工序跟踪表 where [成品编码] = '" & e.DataRow("成品编码") & "' and [毛坯编码] = '" & e.DataRow("毛坯编码") & "'"

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/22 23:26:00 [显示全部帖子]

sql要通过SQLCommand执行:http://www.foxtable.com/webhelp/topics/0696.htm

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/23 15:26:00 [显示全部帖子]

ld = cmd.ExecuteScalar()
改为
dim dt as datatable = cmd.executereader
msgbox(dt.datarows.count)
msgbox(dr.datarow(0)("工时"))
msgbox(dr.datarow(0)("直接材料_配件费用"))

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/23 16:18:00 [显示全部帖子]

msgbox(dr.datarows(0)("工时"))

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/23 16:34:00 [显示全部帖子]

给列赋值的代码都不会啦!

dim dr as datarow = dt.datarows(0)
e.DataRow("工时") =dr ("工时")

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/23 17:03:00 [显示全部帖子]

对整个表做分组统计,不要一行一行的计算

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/23 17:33:00 [显示全部帖子]

参考:http://www.foxtable.com/webhelp/topics/0677.htm

Dim b As New sqlGroupTableBuilder("统计表1","工序跟踪表")
b
.Groups.AddDef("成品编码"'根据产品分组
b
.Groups.AddDef("毛坯编码"'根据产品分组
b
.Totals.AddDef("工时"'对数量进行统计
b
.Totals.AddDef("直接材料_配件成本"'对数量进行统计
b.Totals...........
b
.Build '生成统计表


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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/24 8:56:00 [显示全部帖子]

统计的代码不能放到datacolchanged事件里,这个每一行都要统计一次,反而更慢了。先在外部生成一个统计表,然后再重置列。或者到按钮事件里遍历所有行处理。

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/24 16:39:00 [显示全部帖子]

sql里的update?http://www.foxtable.com/webhelp/topics/0690.htm

使用的什么数据库?

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/24 16:49:00 [显示全部帖子]

可以试试,比如

updat表A as a set a.工时 = b.工时,a.直接材料_配件费用=b.直接材料_配件费用 from (Select Sum(循环时间) As 工时, Sum(直接材料_配件成本) As 直接材料_配件费用 From 工序跟踪表 Where b.[成品编码] = a.成品编码 and b.[毛坯编码] =a.毛坯编码) as b

不能使用表事件,到按钮里执行上面SQL:http://www.foxtable.com/webhelp/topics/0696.htm

表事件保留11楼的用法,然后不要使用重置列功能

 回到顶部
总数 19 1 2 下一页