以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]大数据量的树节点定位到表的行速度好慢  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=119573)

--  作者:chnfo
--  发布时间:2018/5/27 23:19:00
--  [求助]大数据量的树节点定位到表的行速度好慢
有一个表A,有10000行左右。
用这种方法构建了树

现在想点击树的行,定位到表上面。

Dim tbl As Table = Tables(“A”)
tbl.StopRedraw

Dim n As Integer = tbl.FindRow("C = \'" & e.node.Name & "\'")
If n >= 0 Then
    tbl.Position = n    \'试了一下,这一行的耗时很长,估计要用到2.4秒
    tbl.TopVisibleRow = n  \'这一行的耗时估计要用到1.2秒
End If

tbl.ResumeRedraw

试验了一下,要3.5秒才能定位,有什么办法可以效率高一点吗?
[此贴子已经被作者于2018/5/27 23:34:21编辑过]

--  作者:有点甜
--  发布时间:2018/5/27 23:48:00
--  

1、你表属性那里,不要写任何代码,避免影响;

 

2、如果没有其余冲突代码也是如此,那没办法了。


--  作者:chnfo
--  发布时间:2018/5/28 8:55:00
--  
1、这个不可能啊,表中不增加任何事件,这个咋行呢
表A中没有任何事件,尤其是Drewcell事件,速度就很快。
[此贴子已经被作者于2018/5/28 9:20:46编辑过]

--  作者:有点甜
--  发布时间:2018/5/28 10:19:00
--  
以下是引用chnfo在2018/5/28 8:55:00的发言:
1、这个不可能啊,表中不增加任何事件,这个咋行呢
表A中没有任何事件,尤其是Drewcell事件,速度就很快。
[此贴子已经被作者于2018/5/28 9:20:46编辑过]

 

试试先暂停drawcell事件,再处理呢?

 

http://www.foxtable.com/webhelp/scr/0453.htm

 

http://www.foxtable.com/webhelp/scr/0401.htm