Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共4 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:代码运算顺序

1楼
lxmoffice 发表于:2024/3/15 8:47:00
老师,

您好!

想请教一个问题, 举例说, 我在窗口里设置了1个控件, 单击控件将每个工号导入到表(考勤月清单), 表中工号变更后将自动计算每个员工考勤. 
控件导完工号后设置了重新加载代码. 

我想知道控件上代码与表(考勤月清单)中DataColchanged代码的运算顺序

是导入1个工号, 待这个工号DataColchanged代码运算完后再导入下一个工号? 还是两组代码同时进行运算?
若同时进行运算, 会不会发生控件最后一行重新加载代码滞后于表中DataColchanged代码. 


控件代码:
  For Each pr As DataRow In DataTables("员工清单").Select ("[离职]=false")
            Dim fr As DataRow = DataTables("考勤月清单").Find ("工号= '" & pr("工号") & "' and 年份=" & y & " and 月份=" & m & "")
            If fr Is Nothing Then
                Dim dr As DataRow = DataTables("考勤月清单").AddNew()
                dr("年份") = y
                dr("月份") = m
                dr("工号") = pr("工号")   '工号将触发DataTables("考勤月清单")DataColChanged里面代码进行其它运算
            End If
  Next

  DataTables("考勤月清单").Load() '重新加载





[此贴子已经被作者于2024/3/15 8:48:02编辑过]
2楼
有点蓝 发表于:2024/3/15 8:52:00
任何时候只要单元格数据变化都会触发DataColChanged,所以这种代码会在每个循环里,触发事件。

也就是,增加一行-》给工号赋值-》触发DataColChanged,执行完毕-》继续循环增加一行-》给工号赋值-》触发DataColChanged......
3楼
lxmoffice 发表于:2024/3/15 12:28:00
老师,

您好!

谢谢回复. 我想知道的是控件代码会不会滞后于表中DataColchanged?
例子中, 控件给表导入工号, 导完所有工号后重新加载表. 但在导入工号过程中表的DataColchanged同时在运算, 在导入最后1个工号后会不会发生DataColchanged还没运算完就重新加载表了. 
因为DataColchanged是表里写的代码, 重新加载是在控件里写的代码. 

控件代码:
  For Each pr As DataRow In DataTables("员工清单").Select ("[离职]=false")
            Dim fr As DataRow = DataTables("考勤月清单").Find ("工号= '" & pr("工号") & "' and 年份=" & y & " and 月份=" & m & "")
            If fr Is Nothing Then
                Dim dr As DataRow = DataTables("考勤月清单").AddNew()
                dr("年份") = y
                dr("月份") = m
                dr("工号") = pr("工号")   '工号将触发DataTables("考勤月清单")DataColChanged里面代码进行其它运算
            End If
  Next
  DataTables("考勤月清单").Load() '重新加载  '此行代码在控件里面.


[此贴子已经被作者于2024/3/15 12:31:04编辑过]
4楼
有点蓝 发表于:2024/3/15 13:54:00
不会的,如果事件触发,肯定要等代事件执行完毕,才会最后执行load
共4 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 2 queries.