以文本方式查看主题 - 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这个方法了。。谢甜版。。 |