datacolchanged事件的处理逻辑,比如重置一行"记录日期"1、第一段select case代码会执行,"记录内容"被更改增加2、第二段select case代码会执行,计算日期更改状态列
3、状态列被更改,程序触发datacolchanged事件,执行第一段select case代码,"记录内容"被更改增加
如果是3000行数据也就是datacolchanged事件会被触发6000次,"记录内容"被更改6000次,随着"记录内容"数据越来越多也就越来越慢
试试重置里的时候不要触发二次事件,在加一个变量判断不要写日志
SystemReady = False
vars("xie")=true
DataTables("table_3").DataCols("记录日期").RaiseDataColChanged()
vars("xie")=false
SystemReady = True
if vars("xie")=false
Select Case e.DataCol.Name
Case "状态","记录时间","店铺名称","产品类别","单号","产品SKU","责任方","状况描述 原因","客户姓名","联系方式","寄送地址","处理方式","寄送SKU","配件SKU","数量","备注","发货仓库","系统单号","追踪号","物流公司","发货日期","下单日期","回访","记录日期","结束日期","赠送SKU"
e.DataRow("记录内容") = user.name & "在" & Date.now & "把【" & e.DataCol.name & "】值【" & e.OldValue & "】修改成【" & e.NewValue & "】" & vbcrlf & e.DataRow("记录内容")
End Select
end if
If e.DataCol.Name = "记录日期" Then
If e.DataRow.IsNull("记录日期") = False AndAlso e.DataRow("状态")="跟进中"
If e.DataRow("记录日期")> Date.Today.AddDays(val(e.DataRow("处理时间")) * -1) Then
e.DataRow("状态")="跟进中"
Else
e.DataRow("状态")="跟进中(已超时)"
End If
End If
End If