Foxtable(狐表)用户栏目专家坐堂 → [求助]DATACOLCHANGED


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

主题:[求助]DATACOLCHANGED

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


加好友 发短信
等级:三尾狐 帖子:719 积分:5181 威望:0 精华:1 注册:2008/9/24 10:41:00
[求助]DATACOLCHANGED  发帖心情 Post By:2009/5/4 11:31:00 [只看该作者]

有没有加截表完成之前不触发DATACOLCHANGED的函数

比如:
表A为提取表B后台数具
表A的DATACOLCHANGED有好多公式,但我想在表A加载数具完成之前不触发列公式,有此函数吗.

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/5/4 12:06:00 [只看该作者]

以下是引用狐哥在2009-5-4 11:31:00的发言:
有没有加截表完成之前不触发DATACOLCHANGED的函数

比如:
表A为提取表B后台数具
表A的DATACOLCHANGED有好多公式,但我想在表A加载数具完成之前不触发列公式,有此函数吗.

   我也有同样的需求!
   现在的狐表中有手工强制执行DatacolChanged事件的方法(RaiseDataColChanged),好像没有暂停执行DatacolChanged事件的方法!
   在绝大多数时候,列的数值的改变需要自动激发DatacolChanged事件,以实现相应的计算或操作.但在某些特殊时候,需要暂停执行某列的DatacolChanged事件,等到达到一定条件后再执行DatacolChanged事件.所以强烈建议提供一个这样的方法!

[此贴子已经被作者于2009-5-4 12:08:20编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/5/4 12:34:00 [只看该作者]

增加一列作为条件来判断是否执行datacolchanged事件不知是否可行?比如该判断列为空时不执行,需要执行时,给该判断列赋值来触发需要执行datacolchanged事件的列,不知可否?只是动作多一点。

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/5/4 12:43:00 [只看该作者]

以下是引用mr725在2009-5-4 12:34:00的发言:
增加一列作为条件来判断是否执行datacolchanged事件不知是否可行?比如该判断列为空时不执行,需要执行时,给该判断列赋值来触发需要执行datacolchanged事件的列,不知可否?只是动作多一点。

    目前的狐表中肯定不行.目前的系统中没有暂停执行该事件的方法,更不允许用代码动态增加或减少列事件,所以,你的想法很好,但在目前的狐表中没有办法执行.
    既然有这个需求,所以,还是希望贺老师增加一个暂停执行列事件的方法!


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


加好友 发短信
等级:三尾狐 帖子:719 积分:5181 威望:0 精华:1 注册:2008/9/24 10:41:00
  发帖心情 Post By:2009/5/4 13:31:00 [只看该作者]

以下是引用mr725在2009-5-4 12:34:00的发言:
增加一列作为条件来判断是否执行datacolchanged事件不知是否可行?比如该判断列为空时不执行,需要执行时,给该判断列赋值来触发需要执行datacolchanged事件的列,不知可否?只是动作多一点。


还是不好搞,太麻烦了,要利用按钮.
还是希望贺老师增加一个暂停执行列事件的方法!
[此贴子已经被作者于2009-5-4 14:14:19编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/5/4 15:14:00 [只看该作者]

以下是引用狐哥在2009-5-4 13:31:00的发言:
还是希望贺老师增加一个暂停执行列事件的方法!
[此贴子已经被作者于2009-5-4 14:14:19编辑过]

即使有这个暂停执行的方法,那么什么时候来打开执行呢?????


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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/5/4 15:15:00 [只看该作者]

以下是引用mr725在2009-5-4 15:14:00的发言:

即使有这个暂停执行的方法,那么什么时候来打开执行呢?????

这个问题简单,有暂停,就必须有启用,这两个是配对的,否则根本无法使用。


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/5/4 15:21:00 [只看该作者]

以下是引用cpayinyuan在2009-5-4 15:15:00的发言:

这个问题简单,有暂停,就必须有启用,这两个是配对的,否则根本无法使用。

这么说,只是对设计者使用的?


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2009/5/4 15:23:00 [只看该作者]

1.DataColChanged:

if vars("开关") = "开" then
   原来的DataColChanged代码
End if

2.开启:
 vars("开关") = "开"

3.关闭:
 vars("开关") = "关"

 回到顶部
总数 14 1 2 下一页