Foxtable(狐表)用户栏目专家坐堂 → 按钮的click事件,将A表的行的某些字段,复制到B表。运行慢(要等甚至1分钟多,窗口才会关闭),该怎么优化啊?


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

主题:按钮的click事件,将A表的行的某些字段,复制到B表。运行慢(要等甚至1分钟多,窗口才会关闭),该怎么优化啊?

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
按钮的click事件,将A表的行的某些字段,复制到B表。运行慢(要等甚至1分钟多,窗口才会关闭),该怎么优化啊?  发帖心情 Post By:2018/3/19 16:26:00 [只看该作者]

……
e.Form.Controls("确定").enabled=False
e.Form.Controls("取消").enabled=False

Dim n As Integer=Tables("工程相关合同定标情况表").current("标段数量")
For i As Integer=0 To n-1
Tables("合同基本信息表").addnew()
Tables("合同基本信息表").current("公司名称")=Tables("工程相关合同定标情况表").current("公司名称")
Tables("合同基本信息表").current("地块")=Tables("工程相关合同定标情况表").current("地块")
Tables("合同基本信息表").current("一级费项名称")=Tables("工程相关合同定标情况表").current("一级费项名称")
Tables("合同基本信息表").current("二级费项名称")=Tables("工程相关合同定标情况表").current("二级费项名称")
Tables("合同基本信息表").current("三级费项名称")=Tables("工程相关合同定标情况表").current("三级费项名称")
Tables("合同基本信息表").current("合同名称")=Tables("工程相关合同定标情况表").current("合同名称")
Tables("合同基本信息表").current("承办部门")=Tables("工程相关合同定标情况表").current("承办部门")
Tables("合同基本信息表").current("是否属于专业暂估")=Tables("工程相关合同定标情况表").current("是否属于专业暂估")
Tables("合同基本信息表").current("是否为工程合同")=Tables("工程相关合同定标情况表").current("是否为工程合同")
Tables("合同基本信息表").current("是否计入其他产值")=Tables("工程相关合同定标情况表").current("是否计入其他产值")
Tables("合同基本信息表").current("合同确定方式")=Tables("工程相关合同定标情况表").current("合同确定方式")
Next
Tables("合同基本信息表").save

e.Form.Controls("确定").enabled=True
e.Form.Controls("取消").enabled=True

forms("增加一条开标评标信息").close()
End If
[此贴子已经被作者于2018/3/19 16:26:10编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/19 16:48:00 [只看该作者]

试试改成这样

 

Dim n As Integer=Tables("工程相关合同定标情况表").current("标段数量")
Dim cr As Row = Tables("工程相关合同定标情况表").current
Tables("合同基本信息表").StopRedraw
systemready = False
For i As Integer=0 To n-1
    Dim nr = Tables("合同基本信息表").addnew()
    nr("公司名称")=cr("公司名称")
    nr("地块")=cr("地块")
    nr("一级费项名称")=cr("一级费项名称")
    nr("二级费项名称")=cr("二级费项名称")
    nr("三级费项名称")=cr("三级费项名称")
    nr("合同名称")=cr("合同名称")
    nr("承办部门")=cr("承办部门")
    nr("是否属于专业暂估")=cr("是否属于专业暂估")
    nr("是否为工程合同")=cr("是否为工程合同")
    nr("是否计入其他产值")=cr("是否计入其他产值")
    nr("合同确定方式")=cr("合同确定方式")
Next
systemready = true
Tables("合同基本信息表").ResumeRedraw
'Tables("合同基本信息表").save


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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/3/19 17:17:00 [只看该作者]

更改后,窗口确实瞬间,关闭。这么优化,是什么原因呢?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/19 17:51:00 [只看该作者]

看红色代码

 

Dim n As Integer=Tables("工程相关合同定标情况表").current("标段数量")
Dim cr As Row = Tables("工程相关合同定标情况表").current
Tables("合同基本信息表").StopRedraw    '停止表格刷新
systemready = False      '停止执行额外代码,你有可能赋值的时候,datacolchanged触发,耗时

For i As Integer=0 To n-1
    Dim nr = Tables("合同基本信息表").addnew()
    nr("公司名称")=cr("公司名称")
    nr("地块")=cr("地块")
    nr("一级费项名称")=cr("一级费项名称")
    nr("二级费项名称")=cr("二级费项名称")
    nr("三级费项名称")=cr("三级费项名称")
    nr("合同名称")=cr("合同名称")
    nr("承办部门")=cr("承办部门")
    nr("是否属于专业暂估")=cr("是否属于专业暂估")
    nr("是否为工程合同")=cr("是否为工程合同")
    nr("是否计入其他产值")=cr("是否计入其他产值")
    nr("合同确定方式")=cr("合同确定方式")
Next
systemready = true '恢复
Tables("合同基本信息表").ResumeRedraw  '恢复

'Tables("合同基本信息表").save   '暂时不保存


 回到顶部