老师,
您好!
想请教一个问题, 举例说, 我在窗口里设置了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编辑过]
任何时候只要单元格数据变化都会触发DataColChanged,所以这种代码会在每个循环里,触发事件。
也就是,增加一行-》给工号赋值-》触发DataColChanged,执行完毕-》继续循环增加一行-》给工号赋值-》触发DataColChanged......
老师,
您好!
谢谢回复. 我想知道的是控件代码会不会滞后于表中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编辑过]
不会的,如果事件触发,肯定要等代事件执行完毕,才会最后执行load