Foxtable(狐表)用户栏目专家坐堂 → 代码运行未响应问题


  共有4160人关注过本帖树形打印复制链接

主题:代码运行未响应问题

帅哥哟,离线,有人找我吗?
wangglby
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:337 积分:3225 威望:0 精华:0 注册:2020/2/25 23:12:00
代码运行未响应问题  发帖心情 Post By:2022/5/12 8:44:00 [只看该作者]

  请教下 ,以下按钮代码,执行时,老是未响应,等好久才能执行完,我把他们按顺序分成几段放到多个按钮里面,按先后顺序按这些按钮,则正常,请问是怎么回事。

 

[此贴子已经被作者于2022/5/12 11:59:31编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106207 积分:540158 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/12 9:26:00 [只看该作者]

自己计算一下各段代码执行的时间:http://www.foxtable.com/webhelp/topics/2226.htm,看哪一段代码慢

把【常见效率问题】这章内容都看看
[此贴子已经被作者于2022/5/12 9:26:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
shenfengxiaozi
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:42 积分:532 威望:0 精华:0 注册:2021/4/21 9:10:00
  发帖心情 Post By:2022/5/12 11:57:00 [只看该作者]

  

         

[此贴子已经被作者于2022/5/12 11:58:37编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
wangglby
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:337 积分:3225 威望:0 精华:0 注册:2020/2/25 23:12:00
  发帖心情 Post By: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

           


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106207 积分:540158 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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


 回到顶部