以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]DATACOLCHANGED (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=2680) |
-- 作者:狐哥 -- 发布时间:2009/5/4 11:31:00 -- [求助]DATACOLCHANGED 有没有加截表完成之前不触发DATACOLCHANGED的函数 比如: 表A为提取表B后台数具 表A的DATACOLCHANGED有好多公式,但我想在表A加载数具完成之前不触发列公式,有此函数吗. |
-- 作者:cpayinyuan -- 发布时间:2009/5/4 12:06:00 -- 以下是引用狐哥在2009-5-4 11:31:00的发言:
有没有加截表完成之前不触发DATACOLCHANGED的函数 比如: 表A为提取表B后台数具 表A的DATACOLCHANGED有好多公式,但我想在表A加载数具完成之前不触发列公式,有此函数吗. 我也有同样的需求! [此贴子已经被作者于2009-5-4 12:08:20编辑过]
|
-- 作者:mr725 -- 发布时间:2009/5/4 12:34:00 -- 增加一列作为条件来判断是否执行datacolchanged事件不知是否可行?比如该判断列为空时不执行,需要执行时,给该判断列赋值来触发需要执行datacolchanged事件的列,不知可否?只是动作多一点。 |
-- 作者:cpayinyuan -- 发布时间:2009/5/4 12:43:00 -- 以下是引用mr725在2009-5-4 12:34:00的发言:
增加一列作为条件来判断是否执行datacolchanged事件不知是否可行?比如该判断列为空时不执行,需要执行时,给该判断列赋值来触发需要执行datacolchanged事件的列,不知可否?只是动作多一点。 目前的狐表中肯定不行.目前的系统中没有暂停执行该事件的方法,更不允许用代码动态增加或减少列事件,所以,你的想法很好,但在目前的狐表中没有办法执行. |
-- 作者:狐哥 -- 发布时间:2009/5/4 13:31:00 -- 以下是引用mr725在2009-5-4 12:34:00的发言: 还是希望贺老师增加一个暂停执行列事件的方法!
增加一列作为条件来判断是否执行datacolchanged事件不知是否可行?比如该判断列为空时不执行,需要执行时,给该判断列赋值来触发需要执行datacolchanged事件的列,不知可否?只是动作多一点。 还是不好搞,太麻烦了,要利用按钮. [此贴子已经被作者于2009-5-4 14:14:19编辑过]
|
-- 作者:cpayinyuan -- 发布时间:2009/5/4 15:06:00 -- 增加这样一个方法,可以减少不必要的计算,提高系统的效率.若没有这个方法,会造成重复执行许多不必要的计算,造成系统效率下降. 举个简单的例子吧,假如一个工资表中有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编辑过]
|
-- 作者:mr725 -- 发布时间:2009/5/4 15:14:00 -- 以下是引用狐哥在2009-5-4 13:31:00的发言:
还是希望贺老师增加一个暂停执行列事件的方法! [此贴子已经被作者于2009-5-4 14:14:19编辑过] 即使有这个暂停执行的方法,那么什么时候来打开执行呢????? |
-- 作者:cpayinyuan -- 发布时间:2009/5/4 15:15:00 -- 以下是引用mr725在2009-5-4 15:14:00的发言:
即使有这个暂停执行的方法,那么什么时候来打开执行呢????? 这个问题简单,有暂停,就必须有启用,这两个是配对的,否则根本无法使用。 |
-- 作者:mr725 -- 发布时间:2009/5/4 15:21:00 -- 以下是引用cpayinyuan在2009-5-4 15:15:00的发言:
这个问题简单,有暂停,就必须有启用,这两个是配对的,否则根本无法使用。 这么说,只是对设计者使用的? |
-- 作者:don -- 发布时间:2009/5/4 15:23:00 -- 1.DataColChanged: if vars("开关") = "开" then 原来的DataColChanged代码 End if 2.开启: vars("开关") = "开" 3.关闭: vars("开关") = "关" |