以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]安装2020版后,代码执行有问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=152702)

--  作者:whoisvinci
--  发布时间:2020/7/19 14:52:00
--  [求助]安装2020版后,代码执行有问题

今天手贱从2019升级到2020开发版,原来有个代码是新增一行,然后倒序排列(即最新添加的项位于最上面),用了2020后,新增完一行后,新增行会以肉眼可见的速度从最后一行往上跑,四五千条的记录要跑十几秒。19版是没有问题的。然后想降级到19版打开,发现19版已经无法打开这个文件了。附上代码

 

Functions.Execute("AddNewID","采购单","采购单号","CG")
Tables("采购单").Current("采购人") = User.Name
Tables("采购单").Current("采购日期") = Date.Today
Tables("采购单").Sort = "采购单号 DESC"
Tables("采购单查询_Table1").Sort = "采购单号 DESC"
Tables("采购单").Position= 0 \'定位到首行
Vars("GLOBAL_CG_EditMode") = True
Vars("GLOBAL_CG_NEW_MARK") = True
forms("采购单编辑").open()


--  作者:有点蓝
--  发布时间:2020/7/19 21:41:00
--  
我测试没有问题。是不是这个2个表互相做了联动?联动代码有问题,去掉试试
--  作者:whoisvinci
--  发布时间:2020/7/20 9:14:00
--  

主表 currentchanged事件

If Forms("采购单查询").Opened Then \'如果窗口已经打开

    Dim dr As DataRow = Tables("采购单").Current.DataRow

    Dim wz As Integer = Tables("采购单查询_Table1").FindRow(dr)

    If wz >=0 Then

        Tables("采购单查询_Table1").Position = wz

    End If

End If

 

附表currentchanged事件

If Tables("采购单查询_Table1").position >= 0
    Dim dr As DataRow = Tables("采购单查询_Table1").Current.DataRow
    Dim wz As Integer = Tables("采购单").FindRow(dr)
    If wz >=0 Then
        Tables("采购单").Position = wz
    End If
End If

 

关键代码在19版上一直是正常的,升级后就出问题了


--  作者:有点蓝
--  发布时间:2020/7/20 9:15:00
--  

    If wz >=0 Then

systemready = false

        Tables("采购单查询_Table1").Position = wz

systemready = true

    End If



    If wz >=0 Then

systemready = false
        Tables("采购单").Position = wz

systemready = true
    End If


--  作者:whoisvinci
--  发布时间:2020/7/20 9:33:00
--  

19版和20版的代码运行机制有变化吗?我怕还有其他不确定因素


--  作者:有点蓝
--  发布时间:2020/7/20 9:39:00
--  
这个用法本身就有问题的。如果有其他代码影响,可能会导致不停的互相定位