以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  克隆行的一个BUG  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179118)

--  作者:rjh4078
--  发布时间:2022/8/9 9:05:00
--  克隆行的一个BUG
在子表的数量datacolchanged事件中 写入代码: e.datarow.getparentrow("父表")("父表字段")=e.datatable.compute("sum(子表字段)","关联列")
子表的datarowadded事件中加入了事件 e.datarow("子表字段")=1
如果使用新增命令 触发的计算结果没问题
如果使用克隆命令 计算的结果会少克隆的那行

--  作者:有点蓝
--  发布时间:2022/8/9 9:35:00
--  
克隆行触发事件的顺序是DataRowAdding => datacolchanged => DataRowAdded。克隆时datacolchanged事件触发的时候新行还没有添加到表里。这个不是bug,处理机制本身就是如此。

【子表的datarowadded事件中加入了事件 e.datarow("子表字段")=1】,如果datacolchanged里有判断"子表字段"列,肯定是会计算的,除非克隆前被克隆的行本身"子表字段"的值就是1,再赋值1,数据没有变化,所以【e.datarow("子表字段")=1】不会触发datacolchanged