以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 代码运行未响应问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177184) |
-- 作者:wangglby -- 发布时间:2022/5/12 8:44:00 -- 代码运行未响应问题 请教下 ,以下按钮代码,执行时,老是未响应,等好久才能执行完,我把他们按顺序分成几段放到多个按钮里面,按先后顺序按这些按钮,则正常,请问是怎么回事。 [此贴子已经被作者于2022/5/12 11:59:31编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/5/12 9:26:00 -- 自己计算一下各段代码执行的时间:http://www.foxtable.com/webhelp/topics/2226.htm,看哪一段代码慢 把【常见效率问题】这章内容都看看
[此贴子已经被作者于2022/5/12 9:26:23编辑过]
|
-- 作者:shenfengxiaozi -- 发布时间:2022/5/12 11:57:00 --
[此贴子已经被作者于2022/5/12 11:58:37编辑过]
|
-- 作者:wangglby -- 发布时间:2022/5/12 11:59:00 -- 请问下 以下代码 从表B复制内容到表BBB,表B只有5行数据
代码1运行0.几秒,代码2运行2秒, 2段代码一起运行 时间7秒多, 有时还会出现未响应,请问是怎么回事
代码 1: Dim dt11 As New Date(yy, mmm, 1) Dim dt22 As New Date(yy, mmm, Date.DaysInMonth(yy,mmm)) \'获取该月的最后一天 Dim ttt As Table = Tables("表B") DataTables("表BBB").LoadFilter = "" DataTables("表BBB").Load() For Each dr121 As DataRow In DataTables("表BBB").Select(" 物料组1_销售号= \'" & Tables("表C").current("销售号") &"\' And 对比日期 >= #" & dt11 & "# and 对比日期 <= #" & dt22 & "# ") If dr121 IsNot Nothing dr121.Delete End If Next
代码 2:
For Each dr111 As DataRow In DataTables("表B").Select( " ","物料组1_单价 desc , 物料组2_单价 desc ") Dim dr222 As DataRow = DataTables("表BBB").AddNew()
If dr111.IsNull("物料组1_物料编码") =False Then dr222("物料组1_级别") = dr111("物料组1_级别") dr222("物料组1_物料编码") = dr111("物料组1_物料编码") dr222("物料组1_名称") = dr111("物料组1_名称")
dr222("物料组1_数量") = dr111("物料组1_数量")
dr222("物料组1_单价") = dr111("物料组1_单价") End If If dr111.IsNull("物料组2_物料编码") =False Then dr222("物料组2_级别") = dr111("物料组2_级别") dr222("物料组2_物料编码") = dr111("物料组2_物料编码") dr222("物料组2_名称") = dr111("物料组2_名称") dr222("物料组2_单价") = dr111("物料组2_单价") dr222("物料组2_数量") = dr111("物料组2_数量") End If dr222("对比日期")= Date.Today dr222("差异类别") = dr111("差异类别") dr222("物料组1_销售号") = dr111("物料组1_销售号") Next
|
-- 作者:有点蓝 -- 发布时间:2022/5/12 12:18:00 -- 代码 1还可以优化 Dim dt11 As New Date(yy, mmm, 1) Dim dt22 As New Date(yy, mmm, Date.DaysInMonth(yy,mmm)) \'获取该月的最后一天 Dim ttt As Table = Tables("表B") DataTables("表BBB").LoadFilter = "" DataTables("表BBB").Load() DataTables("表BBB").deletefor(" 物料组1_销售号= \'" & Tables("表C").current("销售号") &"\' And 对比日期 >= #" & dt11 & "# and 对比日期 <= #" & dt22 & "# ") 代码 2估计是有表事件或者表达式计算影响了 屏蔽表事件 systemready=false 代码 2原来的代码 systemready=true 如果是表达式影响,参考:http://www.foxtable.com/webhelp/topics/1935.htm |