以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 目录树双击筛选 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=8818) |
||||
-- 作者:实话实说 -- 发布时间:2010/12/10 20:48:00 -- 目录树双击筛选 以下是产品表目录树双击节点筛选代码,双击后约10多秒才筛选出来,而产品表只有2000条记录,如果是2万条记录,岂不更长时间,而双击筛选是经常操作。 Dim Value()As String |
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/12/11 0:11:00 -- 你厉害,别说是筛选2000行,就是加载2000行,也不应该超过0.3秒,你居然整出个10秒来。 这和双击还是单击,没有任何关系的,自己好好找找原因吧,搞不定就做例子传上来。
下面这个表就是2000行,双击目录树节点筛选,快的时候是0秒,慢的时候是0.015秒,也比你快666倍:
[此贴子已经被作者于2010-12-11 1:17:49编辑过]
|
||||
-- 作者:实话实说 -- 发布时间:2010/12/11 8:28:00 -- 我准确计算了一下,目录树筛选要5-6秒。先说明一下,我现在是2个表:[产品]表和[用料]表,[用料]表是[产品]表的子表,目录树筛选的是[产品]表,当子表没有记录时,筛选很快,现在子表有8000条记录,所以筛选慢了,是这样吗?2表是关联表。
我的案例是开发版做的,需要的话我发上来。 [此贴子已经被作者于2010-12-11 8:29:22编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/12/11 10:10:00 -- 这个文件有关联,父表2000行,子表8000行,筛选一样很快啊:
开发版的狗也支持商业版的foxtable,你将数据导出,用商业版做个例子吧。 既然现在排除了双击和关联的影响,你也可以继续用排除法,逐个删除可能有影响的表事件来测试,看看原因到底在哪,这通常都是因为存在不合理的代码造成的。 [此贴子已经被作者于2010-12-11 10:16:14编辑过]
|
||||
-- 作者:实话实说 -- 发布时间:2010/12/11 10:46:00 -- 我想代码应该不会有问题,都是按照帮助做的,而且关联数据少的时候目录树筛选也很快,问题可能出在关联,[产品]表和[用料]表的关联我是用了三个字段[产品分类]、[型号]、[规格],会不会是关联字段太多影响了筛选速度。
之前,我也是用主表的_Identify与子表的ID进行关联,但操作人员不愿意在子表一个一个的录入,而是希望通过复制EXCEL表的数据,这样就修改成现在的关联,实在没办法。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/12/11 10:59:00 -- 1、那就先改为一个字段关联,看看究竟是不是关联的原因,怀疑什么,就去验证什么,不要只停留在猜想阶段。 2、即使用主表的_Identify与子表的ID关联,子表的[产品分类]、[型号]、[规格]一样可以自动输入,甚至连代码也不用写,直接在子表加入三个表达式列,引用父表数据即可。 [此贴子已经被作者于2010-12-11 11:05:25编辑过]
|
||||
-- 作者:实话实说 -- 发布时间:2010/12/11 11:11:00 -- 1、我等下去验证; 2、我需要的不是[产品分类]、[型号]、[规格]的自动录入,而是大批量从EXCEL表复制,由于ID关联,所以不行。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/12/11 11:53:00 -- 呵呵,我用多列关联也一样啊:
|
||||
-- 作者:实话实说 -- 发布时间:2010/12/11 12:15:00 -- 我还是传上来,请狐爸帮我看一下 窗口表:BOM窗口
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/12/11 13:14:00 -- 1、这个问题和窗口、目录树已经是否双击,都没有任何关系,因为你就是在产品表直接通过菜单筛选都是很慢的。 2、将用料表的计算用料和单价两列的表达式删除,筛选即可回到正常速度。 3、你的设计不太好,就这么几个表,居然有这么多关联,而且全是多列关联。 4、意外的一个发现,用料表的PrepareEdit事件为:
Dim tb As New DropTreeBuilder
居然没有进行任何的判断,例如是否是材料分类列,是否是焦点单元格,等于每选择一个单元格就执行一次这样的代码,效率极低,这样的代码最多在MainTableChanged设置即可,而且还要判断一下主表是否是用料表,才予以执行。 [此贴子已经被作者于2010-12-11 13:16:34编辑过]
|