Foxtable(狐表)用户栏目专家坐堂 → [求助]如何优化代码提高运行及保存速度?


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

主题:[求助]如何优化代码提高运行及保存速度?

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


加好友 发短信
等级:幼狐 帖子:146 积分:1151 威望:0 精华:0 注册:2017/2/10 15:09:00
[求助]如何优化代码提高运行及保存速度?  发帖心情 Post By:2019/1/13 13:45:00 [只看该作者]

我的项目中有这么一个情况,表B中有一列数据,每填入一个数据,都会复制到表A,并把这个数据均分到表A中的12个列中,表A的这12个列里面,每有一个数据变动都会引起同一列其他数据的变化。

部分代码如下:
If e.DataCol.Name ="整体计划合计_金额" Then
Dim dr As DataRow = e.DataRow
Dim jfe As Single = dr("整体计划合计_金额")/12
 dr("一月_金额")= jfe
                dr("二月_金额")= jfe
                dr("三月_金额")= jfe
                dr("四月_金额")= jfe
               dr("五月_金额")= jfe
               dr("六月_金额")= jfe
                dr("七月_金额")= jfe
                dr("八月_金额")= jfe
                dr("九月_金额")= jfe
                dr("十月_金额")= jfe
               dr("十一月_金额")= jfe
                dr("十二月_金额")= jfe
End If

If e.DataCol.Name = "一月_金额" Then
'''''''很多代码‘’‘’
end if

If e.DataCol.Name = "二月_金额" Then
'''''''很多代码‘’‘’
end if

If e.DataCol.Name = "三月_金额" Then
'''''''很多代码‘’‘’
end if

If e.DataCol.Name = "四月_金额" Then
'''''''很多代码‘’‘’
end if
......................


原因为整体计划合计会均分到12个月数据里,这12个月里的数据变动又要引起很多运算量。
目前的状况是整体计划合计只要一动一个数据就要卡5分钟左右,请问如何优化?

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


加好友 发短信
等级:狐神 帖子:4750 积分:34558 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2019/1/13 16:38:00 [只看该作者]

涉及这么多计算,慢是必然的,上实例让大家瞧瞧能否调整一下方法。

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


加好友 发短信
等级:幼狐 帖子:146 积分:1151 威望:0 精华:0 注册:2017/2/10 15:09:00
[求助]如何优化代码提高运行及保存速度?  发帖心情 Post By:2019/1/13 18:30:00 [只看该作者]

如我的项目,2019年年度报表里,"损益计划表"中,"今年计划_额" 和 "今年计划_率",输入数据后,会自动引用到"月度计划表"的"整体计划合计_金额"和"整体计划合计_率" 中,并把这个数据数据自动除以12,然后填入"月度计划表"中的“一月计划_金额”、“二月计划_金额”、......一直到“十二月计划_金额”。

并且,这十二列的数据,每一列数据变化都会引起数据变化。

现在是只要在"损益计划表"中,"今年计划_额"里填入一个数据,项目就要卡半天,请问如何优化代码让运行速度加快?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.zip

[此贴子已经被作者于2019/1/13 18:34:29编辑过]

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


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

代码改成

 

SystemReady = False

 

'本来的代码

 

SystemReady = True


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


加好友 发短信
等级:幼狐 帖子:146 积分:1151 威望:0 精华:0 注册:2017/2/10 15:09:00
  发帖心情 Post By:2019/1/14 8:31:00 [只看该作者]

甜老师,请教一下,在哪个位置添加?每个月的列的代码里添加还是引用损益计划表的今年金额里添加?还有添加这个会不会引起代码不执行?
[此贴子已经被作者于2019/1/14 8:31:43编辑过]

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


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

datacolchanged事件。你操作哪个表,就添加到哪个表里面去。


 回到顶部