以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]大数据量的树节点定位到表的行速度好慢 (http://foxtable.net/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
|