以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 代码如何优化? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=134048) |
-- 作者:ZJZK2018 -- 发布时间:2019/4/26 1:22:00 -- 代码如何优化? 标录明细共有30行,输入最高家数为6家时,共耗时3.8秒,如何优化下面这段代码?? Dim filt As String = "系统编号 = \'" & e.DataRow("系统编号") & "\'" Case "最高家数" \'Dim dts As List(Of DataRow) = Tables("开标记录.标录明细").DataTable.Select("系统编号 = \'" & dr("系统编号") & "\' And [有效报价] > 0 " ,"有效报价 DESC") Dim dts As List(Of DataRow) = DataTables("标录明细").Select(filt & "And [有效报价] > 0 " ,"有效报价 DESC") If e.NewValue <> e.OldValue AndAlso dts.Count > e.NewValue Then For n As Integer = 0 To dts.Count -1 If dts(n)("评标状态").Contains("最高报价") dts(n)("评标状态") = Nothing End If Next \'Tables("开标记录.标录明细").DataTable.ReplaceFor("评标状态",Nothing,filt) For i As Integer = 0 To e.NewValue -1 dts(i)("评标状态") = "最高报价" & (i+1) Next Else MessageBox.Show("请先录入标录明细后,再执行!") End If
|
-- 作者:有点蓝 -- 发布时间:2019/4/26 9:15:00 -- Dim filt As String = "系统编号 = \'" & e.DataRow("系统编号") & "\'" Case "最高家数" \'Dim dts As List(Of DataRow) = Tables("开标记录.标录明细").DataTable.Select("系统编号 = \'" & dr("系统编号") & "\' And [有效报价] > 0 " ,"有效报价 DESC") Dim dts As List(Of DataRow) = DataTables("标录明细").Select(filt & "And [有效报价] > 0 " ,"有效报价 DESC") If e.NewValue <> e.OldValue AndAlso dts.Count > e.NewValue Then For n As Integer = 0 To dts.Count -1 If dts(n)("评标状态").Contains("最高报价") dts(n)("评标状态") = Nothing End If If n < e.NewValue Then dts(n)("评标状态") = "最高报价" & (n+1) End If Next Else MessageBox.Show("请先录入标录明细后,再执行!") End If 另外慢未必是这里的问题,只是很简单的赋值而已,可能更改评标状态触发了其它事件,或者表达式
|