Foxtable(狐表)用户栏目专家坐堂 → [求助]RaiseDataColChanged的用法问题


  共有1777人关注过本帖平板打印复制链接

主题:[求助]RaiseDataColChanged的用法问题

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


加好友 发短信
等级:九尾狐 帖子:2222 积分:18271 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]RaiseDataColChanged的用法问题  发帖心情 Post By:2016/10/13 15:28:00 [只看该作者]

表A中有ID、Code、A、P、V、CA、CP、CV、Class、FCode 、…………等列
Class = 2时
A、P变化会导致V变化,并导致class = 1的V值变化
CA、CP变化会导致CV变化,并导致Class = 1的CV值变化
A变化会导致CA变化

如何来写datacolchanged事件效率会高一些?

dim r as datarow = e.datarow
select case r("Class")
case 2
   dim fil as string = "合计条件"
   select case e.datacol.name
        case "A","p"
             r("V") = r("A") * r("P")
             e.datatable.datacols("ID").RaiseDataColChanged("Code = '" & r("FCode") & "'")
   end select 

   select case e.datacol.name
        case "A","CP"
             r("CA") = r("A") +datatables("B").compute("sum(A)",fil)
             r("CV") = r("CA") * r("CP")
             e.datatable.datacols("ID").RaiseDataColChanged("Code = '" & r("FCode") & "'")
   end select 
case 1
    dim fil as string = "汇总条件"
    select case e.datacol.name
        case "ID"
             r("V") = e.datatables("A").compute("Sum(V)",fil)
             r("CV") = e.datatables("A").compute("Sum(CV)",fil)
     end select
end select 


感觉这样,Class = 2的行中A变化时,它会重置一次,而它导致CA变化,又会重置一次。可能效率有影响。
如何效率会高一点呢?

[此贴子已经被作者于2016/10/13 16:01:48编辑过]

 回到顶部