以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  DataColChanged 事件,执行顺序的问题!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=133389)

--  作者:bluev
--  发布时间:2019/4/13 12:32:00
--  DataColChanged 事件,执行顺序的问题!
DataColChanged 事件中 
if e.datacol.name = A then
  IF E.DATAROW("B") IS NOT NULL THEN
    e.datarow("B") = “”  在执行到这一步时,就会跳到 第二段代码去执行 并不会执行下面的代码
    E.DATAROW("B") = "AAAA"  这里要执行完第二段代码,才重新执行
  end if
\'第二段代码
if e.datacol.name = B then
 e.datarow("C") = 7777
END IF

这是为什么呢?

--  作者:有点蓝
--  发布时间:2019/4/13 13:53:00
--  
任何时候只要单元格的值改变就会触发执行这个事件。就算在事件里面赋值也是一样。



--  作者:bluev
--  发布时间:2019/4/13 16:29:00
--  
有什么好的办法可以解决吗?
可以用赋值一个变量进行判断吗?
if e.datacol.name = A then
  IF E.DATAROW("B") IS NOT NULL THEN
    e.datarow("B") = “”  在执行到这一步时,就会跳到 第二段代码去执行 并不会执行下面的代码
vars("B") = "B"
    E.DATAROW("B") = "AAAA"  这里要执行完第二段代码,才重新执行
vars("B") = "B"
  end if
\'第二段代码
if e.datacol.name = B then
IF vars("B") ="bb" 
 e.datarow("C") = 7777
END IF
vars("B") ="bb"

--  作者:有点蓝
--  发布时间:2019/4/13 16:37:00
--  
没看懂到底想要做什么

if e.datacol.name = A then
  IF E.DATAROW("B") IS NOT NULL THEN
    \'e.datarow("B") = “”  这句代码没有存在的意义去掉即可
    E.DATAROW("B") = "AAAA"  这里要执行完第二段代码,才重新执行
  end if
\'第二段代码
if e.datacol.name = B then
 e.datarow("C") = 7777
END IF