以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于表事件问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=68312) |
-- 作者:atmetmicoo -- 发布时间:2015/5/14 16:21:00 -- 关于表事件问题 各位老师好, 有个头疼的问题请教: 我的系统是网络多用户版,假设一个"表1"有A、B列,在表事件DataColChanged设置,如果B列有变化,就会执行公式:A = A + e.NewValue - e.OldValue; 假设用户1 和 用户2同时加载了这个表的数据,用户1修改了修改了B,就会执行了A = A + e.NewValue - e.OldValue 但是这个时候,用户2 重新Load了“表1”,也会执行A = A + e.NewValue - e.OldValue,等于就是多执行了一次,请问这种问题有办法解决吗?
|
-- 作者:Bin -- 发布时间:2015/5/14 16:22:00 -- 独占编辑 http://www.foxtable.com/help/topics/2295.htm |
-- 作者:大红袍 -- 发布时间:2015/5/14 16:25:00 -- 你这样的计算,本身就有问题,不要在原值上面加减,两列可以弄成3列,B列分拆成初始值和修改值。 |
-- 作者:atmetmicoo -- 发布时间:2015/5/14 16:48:00 -- 以下是引用大红袍在2015/5/14 16:25:00的发言: 你这样的计算,本身就有问题,不要在原值上面加减,两列可以弄成3列,B列分拆成初始值和修改值。 其实我的程序不是这么简单,是用一个表计算其他表的数据,为了方便大家理解我简化了描述 |
-- 作者:atmetmicoo -- 发布时间:2015/5/14 16:49:00 -- 以下是引用Bin在2015/5/14 16:22:00的发言: 独占编辑 http://www.foxtable.com/help/topics/2295.htm Hi,Bin老师,不是两个人同时编辑,而是一个人编辑,另外一个人刷新导致的重复运算 |
-- 作者:Bin -- 发布时间:2015/5/14 16:50:00 -- 看3楼设计思路有问题,应该换个思路 |
-- 作者:大红袍 -- 发布时间:2015/5/14 16:51:00 -- Load表1,只要不修改B列的数据,也是不会触发Datacolchanged事件的啊。
例子说明问题 |
-- 作者:atmetmicoo -- 发布时间:2015/5/14 16:51:00 -- 以下是引用Bin在2015/5/14 16:50:00的发言: 看3楼设计思路有问题,应该换个思路 那如果刷新表也会导致重复计算也是浪费资源,可否有解决方式判断,如果是刷新表就不计算 |
-- 作者:atmetmicoo -- 发布时间:2015/5/14 16:53:00 -- 以下是引用大红袍在2015/5/14 16:51:00的发言: Load表1,只要不修改B列的数据,也是不会触发Datacolchanged事件的啊。
例子说明问题 如果用户2已经加载了表1,在重新加载就是数值在变化,会自动激活 |
-- 作者:大红袍 -- 发布时间:2015/5/14 16:53:00 -- 不会重新计算,肯定是你哪里设置了代码重新计算。 |