以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]循环执行的疑问  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=107744)

--  作者:kb9701
--  发布时间:2017/10/9 10:26:00
--  [讨论]循环执行的疑问
Dim drs As List(Of DataRow)
        drs = DataTables("加工单明细").Select("[加工单号] = \'" & e.DataRow("加工单号")  & "\' And [行号] >  \'" & e.DataRow("行号")  &  "\'" )
        For Each dr As DataRow In drs
            MessageBox.Show(dr("行号"))
            dr("开工数量") = e.DataRow("完工数量")
            dr("完工数量") = e.DataRow("完工数量")
        Next
代码是这样的,最大行数是5,修改了第1行的完工数量,结果发现弹出窗口的发现不是执行一次。。而是执行了多次。2,3,4,5。。应该执行到这里就完成后。。结果后面继续5,4,5,3。。
这是什么情况呢?
第一次打开的时候更夸张,1,2,3,4,5,5,4,5,3。。。连第1行多执行了。。
重新打开软件后才恢复正常,但执行的次数还是多了。。
知道问题了。。。
因为代码是卸载DataColChanged里。。后面的行也修改了。。所以执行了。。有没有什么方法避免多次执行呀。。
[此贴子已经被作者于2017/10/9 10:29:49编辑过]

--  作者:有点甜
--  发布时间:2017/10/9 10:52:00
--  

1、加上列名判断

 

http://www.foxtable.com/webhelp/scr/1522.htm

 

2、可以加上systemReady控制不重复触发

 

http://www.foxtable.com/webhelp/scr/2218.htm

 


--  作者:kb9701
--  发布时间:2017/10/9 10:59:00
--  
前面列名判断了,忘记了SystemReady这个方法了。。谢甜版。。