以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何优化代码提高运行及保存速度? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=130099) |
||||
-- 作者:ltty5200 -- 发布时间: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 -- 发布时间:2019/1/13 16:38:00 -- 涉及这么多计算,慢是必然的,上实例让大家瞧瞧能否调整一下方法。 |
||||
-- 作者:ltty5200 -- 发布时间:2019/1/13 18:30:00 -- [求助]如何优化代码提高运行及保存速度? 如我的项目,2019年年度报表里,"损益计划表"中,"今年计划_额" 和 "今年计划_率",输入数据后,会自动引用到"月度计划表"的"整体计划合计_金额"和"整体计划合计_率" 中,并把这个数据数据自动除以12,然后填入"月度计划表"中的“一月计划_金额”、“二月计划_金额”、......一直到“十二月计划_金额”。 并且,这十二列的数据,每一列数据变化都会引起数据变化。 现在是只要在"损益计划表"中,"今年计划_额"里填入一个数据,项目就要卡半天,请问如何优化代码让运行速度加快?
[此贴子已经被作者于2019/1/13 18:34:29编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2019/1/13 21:15:00 -- 代码改成
SystemReady = False
\'本来的代码
SystemReady = True |
||||
-- 作者:ltty5200 -- 发布时间:2019/1/14 8:31:00 -- 甜老师,请教一下,在哪个位置添加?每个月的列的代码里添加还是引用损益计划表的今年金额里添加?还有添加这个会不会引起代码不执行? [此贴子已经被作者于2019/1/14 8:31:43编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2019/1/14 8:55:00 -- datacolchanged事件。你操作哪个表,就添加到哪个表里面去。 |