在一个窗口table的一个按钮 button里有一段代码
此主题相关图片如下:表格.jpg
Dim dtb As New DataTableBuilder("历史进店记录1")
dtb.Build()
DataTables("历史进店记录1").Fill("Select * From [历史进店记录]","华泰内控系统-ERP",False)
Tables("售后客户档案_售后客户档案Table2").StopRedraw
For Each dr As Row In Tables("售后客户档案_售后客户档案Table2")
If DataTables("历史进店记录1").Compute("Count(进店时间)","进店时间 >= #"& Functions.Execute("服务器时间").addyears(-1) &"# And 底盘号 = '" & dr("底盘号") & "'") >= 3 Then
dr("客户等级") = "A"
ElseIf DataTables("历史进店记录1").Compute("Count(进店时间)","进店时间 >= #"& Functions.Execute("服务器时间").addyears(-1) &"# And 底盘号 = '" & dr("底盘号") & "'") = 2 Then
dr("客户等级") = "B"
ElseIf DataTables("历史进店记录1").Compute("Count(进店时间)","进店时间 >= #"& Functions.Execute("服务器时间").addyears(-1) &"# And 底盘号 = '" & dr("底盘号") & "'") = 1 Then
dr("客户等级") = "C"
Else
dr("客户等级") = "D"
End If
If Functions.Execute("服务器时间").addmonths(-3) < dr("建档日期") Then
dr("客户等级") = "A"
End If
If dr.IsNull("编号") = True Then
dr("客户等级") = "E"
End If
Next
Tables("售后客户档案_售后客户档案Table2").ResumeRedraw
这段代码就是用来根据今天的时间来调整 整个表里的客户等级 我一执行这段代码就出现卡死,
后来我优化了代码,采用了查询与赋值分开的做法
Dim dtb As New DataTableBuilder("历史进店记录1")
dtb.Build()
DataTables("历史进店记录1").Fill("Select * From [历史进店记录]","华泰内控系统-ERP",False)
Tables("售后客户档案_售后客户档案Table2").StopRedraw
Dim Dic As new Dictionary(of Row, String)
For Each dr As Row In Tables("售后客户档案_售后客户档案Table2")
If DataTables("历史进店记录1").Compute("Count(进店时间)","进店时间 >= #"& Functions.Execute("服务器时间").addyears(-1) &"# And 底盘号 = '" & dr("底盘号") & "'") >= 3 Then
dic.Add(dr, "A")
ElseIf DataTables("历史进店记录1").Compute("Count(进店时间)","进店时间 >= #"& Functions.Execute("服务器时间").addyears(-1) &"# And 底盘号 = '" & dr("底盘号") & "'") = 2 Then
dic.Add(dr, "B")
ElseIf DataTables("历史进店记录1").Compute("Count(进店时间)","进店时间 >= #"& Functions.Execute("服务器时间").addyears(-1) &"# And 底盘号 = '" & dr("底盘号") & "'") = 1 Then
dic.Add(dr, "C")
Else
dic.Add(dr, "D")
End If
Next
For Each dr As Row In dic.Keys
dr("客户等级") = dic(dr)
Next
Tables("售后客户档案_售后客户档案Table2").ResumeRedraw
但是还出现卡死,求解了~~~~~~~~~~~~~~~~~~
[此贴子已经被作者于2013-1-25 14:45:46编辑过]