增加这样一个方法,可以减少不必要的计算,提高系统的效率.若没有这个方法,会造成重复执行许多不必要的计算,造成系统效率下降.
举个简单的例子吧,假如一个工资表中有52列(全部是数据列,不用表达式列),分别为姓名,工资1,工资2,工资3,……工资50,工资合计。假设运算公式为:工资合计=工资1+工资2+工资3+,……+工资50。在目前的狐表中,需要对这50个列设置同样的DatacolChanged事件(计算工资合计)。
假如在新增一行工资数据的时候,我们不直接编辑表,窗口中的输入框也不直接绑定表,而是通过窗口的输入框及全局变量一次性写入一人的全部工资项目(注意是先在窗口中填写50个工资项目的值,然后再一次性写入表),在目前的狐表中,每写入一个字段,就执行一次DatacolChanged事件,换句话说,每导入一个人的工资数据,就重复执行50次的一模一样的DatacolChanged事件。
其实大家都能看出来,在这种情况下,重复执行50次相同的事件完全没有必要。而且一个人的工资数据是在窗口中输入而且一次性导入表中,中间的计算结果也没有任何意义。效率比较高的做法是在从全局变量写入表中的时候先暂停执行DatacolChanged事件,等50个字段写入完成后,只要执行一次某一列的Datacolchanged事件即可。
在实际应用中,计算公式比这复杂得多,可能有加减乘除、括号、甚至还有函数,对系统的运行效率的影响也非常明显。为了提高系统的运行效率,所以,再次强烈建议贺老师增加暂停执行DatacolChanged事件的方法!
[此贴子已经被作者于2009-5-4 15:08:55编辑过]