1、AfterOpenProject中,加入代码:
DataTables("客户表").datacols("客户").RaiseDataColChanged()
2、客户表的表属性DataColChanged,加入代码:
e.DataRow("用户名") = user.name
If e.DataCol.Name = "客户" Then
e.DataRow("日志时间") = Date.Now
End If
Dim d As Date = Date.Now
DataTables("客户表").ReplaceFor("日志", True, "日志时间 <= #" & d.AddMinutes(-10) & "#")
DataTables("客户表").ReplaceFor("日志", False, "日志时间 > #" & d.AddMinutes(-10) & "#")
'没做天数:
If e.DataCol.name = "客户" Then
If e.DataRow.IsNull("客户") Then
e.DataRow("没做天数") = Nothing
Else
Dim fdr = DataTables("入库表").find("客户='" & e.DataRow("客户") & "' and 入库日期 <= #" & Date.now & "#", "入库日期 desc")
If fdr Is Nothing Then
e.DataRow("没做天数") = -1
Else
Dim sp As TimeSpan = Date.now - cdate(fdr("入库日期"))
e.DataRow("没做天数") = sp.TotalDays
End If
End If
End If
结果导致重复重算,拖慢运行速度。
现该代码为:
1、控件按钮的单击事件:
DataTables("客户表").datacols("客户").RaiseDataColChanged()
2、客户表的表属性DataColChanged,加入代码:
'没做天数:
If e.DataCol.name = "客户" Then
If e.DataRow.IsNull("客户") Then
e.DataRow("没做天数") = Nothing
Else
Dim fdr = DataTables("入库表").find("客户='" & e.DataRow("客户") & "' and 入库日期 <= #" & Date.now & "#", "入库日期 desc")
If fdr Is Nothing Then
e.DataRow("没做天数") = -1
Else
Dim sp As TimeSpan = Date.now - cdate(fdr("入库日期"))
e.DataRow("没做天数") = sp.TotalDays
End If
End If
End If
If e.DataCol.Name = "用户名"
e.DataRow("用户名") = user.name
End If
Select Case e.DataCol.Name
Case "客户","日志时间"
If e.DataCol.Name = "客户" Then
e.DataRow("日志时间") = Date.Now
End If
End Select
Dim d As Date = Date.Now
Select Case e.DataCol.Name
Case "日志","日志时间"
DataTables("客户表").ReplaceFor("日志", True, "日志时间 <= #" & d.AddMinutes(-10) & "#")
DataTables("客户表").ReplaceFor("日志", False, "日志时间 > #" & d.AddMinutes(-10) & "#")
End Select
问题:
1、改后,每次点击该控件按钮重置列后,在项目中,每点选一行,该行左侧的序号都会变橘红色,直至项目保存数据才能恢复正常,求解决?
2、改后的代码,求帮忙看下,有没有什么问题,谢谢!