DataColChanged可不止几十秒,除非之前用其他方法算过一次,表中已经有算好的值。
在我的i5笔记本,12秒完成:
Dim dt As Date =Date.now()
Dim dic As new Dictionary(of String,Double)
Dim nms As List(of String) = DataTables("药品收发记录").GetValues("单据号")
For Each nm As String In nms
dic.Add(nm,DataTables("药品收发记录").Compute("Sum(成本金额)","单据号 = '" & nm & "'"))
Next
Dim drs As List(of DataRow) = DataTables("药品收发记录").Select("单据号 is not null","单据号")
drs(0)("零售金额") = dic(drs(0)("单据号"))
For i As Integer = 1 To drs.count -1
If drs(i)("单据号") = drs(i-1)("单据号") Then
drs(i)("零售金额") = drs(i-1)("零售金额")
Else
drs(i)("零售金额") = dic(drs(i)("单据号"))
End If
Next
messagebox.show((Date.now - dt).TotalSeconds)
[此贴子已经被作者于2014-4-10 16:01:23编辑过]