表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编辑过]