以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于afterload的时间测试,求解  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=37243)

--  作者:ifastudy
--  发布时间:2013/7/3 14:10:00
--  [求助]关于afterload的时间测试,求解
下面是afterload中的一段代码,我测试了四个时间点。#1与#2之间花了3.5秒(见附图)。我已经用 [工单编号] = \'\' 指示不载入数据了,应该很快啊。tables("生产工单")是一个父表,它有6个子表,会有影响吗?

With Tables("生产工单")
Functions.Execute("RecordTime","#1",False)

.Filter = "[工单编号] = \'\'"
.Sort="缓冲状态 DESC"
Functions.Execute("RecordTime","#2",False)

.SetHeaderRowHeight(20,60)
.Cols("缓冲状态").AllowEdit = False
.Cols("工单编号").AllowEdit = False
.Cols("款色").AllowEdit = False
Functions.Execute("RecordTime","#3",False)

.Cols("承诺交期").AllowEdit = False
.Cols("虚拟交期").AllowEdit = False
.Cols("总量").AllowEdit = False
Functions.Execute("RecordTime","#4",False)

End With


图片点击可在新窗口打开查看此主题相关图片如下:time.png
图片点击可在新窗口打开查看


--  作者:Bin
--  发布时间:2013/7/3 14:16:00
--  
1.单独测试一遍数据是不可靠的,因为运行速度会和系统空闲程度挂钩. 
2.排序也是需要耗费大量操作的.
3.这没涉及到子表操作,有多少个子表没有影响.

--  作者:ifastudy
--  发布时间:2013/7/3 14:22:00
--  
1.我测试把排序去掉,经过多次测试还是1.8秒左右。
2. afterload会同时触发currentchanged事件吗?
3.如果改成 datatable .loadfilter 是否意味着整个系统都要改成datatable.loadfilter. 不然其它表的数据会受到这个载入条件的影响?
[此贴子已经被作者于2013-7-3 14:22:42编辑过]

--  作者:ifastudy
--  发布时间:2013/7/3 14:27:00
--  
afterload不会触发其它事件。
我在命令窗口中测试的时间还是一样,看来与afterload事件和窗口都没有关系。

--  作者:ifastudy
--  发布时间:2013/7/3 14:31:00
--  
Tables("生产工单").Filter = "[工单编号] = \'\'" 
设置这一条语句,系统到底干了什么呢?

--  作者:狐狸爸爸
--  发布时间:2013/7/3 15:55:00
--  
.Filter是筛选数据,不是加载数据,可能最花时间的就是这个.Filter
--  作者:ifastudy
--  发布时间:2013/7/3 17:05:00
--  
如果这个窗口的载入条件改成 datatable .loadfilter=“[工单编号]”的话, 是否意味着整个系统都要改成datatable.loadfilter. 不然其它窗口要用到的对应的tables数据,也会受到这个载入条件的影响?
--  作者:Bin
--  发布时间:2013/7/3 17:08:00
--  
Tables 只是使用当前界面可见的表.   和未加载的内容无关.