Foxtable(狐表)用户栏目专家坐堂 → 项目启动时间的问题


  共有2202人关注过本帖树形打印复制链接

主题:项目启动时间的问题

帅哥哟,离线,有人找我吗?
santde
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2293 威望:0 精华:0 注册:2015/6/14 18:33:00
项目启动时间的问题  发帖心情 Post By:2015/12/30 17:23:00 [只看该作者]

我的项目 总感觉打开项目到登陆窗口的时间有点长,经跟踪发现项目打开事件有些不正常,但是找不到原因是什么

3,表示项目启动过程:BeforeLoadOuterTable

4,表示项目启动过程:Initialize

6,表示项目启动过程:AfterOpenProject


3处的代码为
vars("DTSJ") = False
e.Cancel = True

4处代码为
gs_blnLoading= True
If vars("DTSJ") = True Then
For Each dt As DataTable In DataTables
    dt.GlobalHandler.KeyDown = True
    dt.GlobalHandler.PrepareEdit = True
    'dt.AllowCopyHeader = True
    dt.GlobalHandler.BeforeLoad = True
    dt.GlobalHandler.BeforeSaveDataRow = True
    dt.GlobalHandler.BeforeDeleteDataRow = True
    dt.GlobalHandler.BeforeAddDataRow = True
    dt.GlobalHandler.DoubleClick = True
    dt.GlobalHandler.Click = True
Next
End If


这前的数据时间正常就省了
3:2015-12-30 17:07:36.99319齿轮日生产计划
3:2015-12-30 17:07:36.99319齿轮日计划数据
4:2015-12-30 17:07:37.16632
3:2015-12-30 17:07:44.17439权限控制
3:2015-12-30 17:07:44.28046用户名表
2:2015-12-30 17:07:44.37353
3:2015-12-30 17:07:44.47360类别项目
2:2015-12-30 17:07:44.52163
2:2015-12-30 17:07:47.03327
2:2015-12-30 17:07:47.06629
6:2015-12-30 17:07:47.50360

问题是 3 处 已取消的所有的外部表加载事件
为啥系统还要对所有的表过一遍,均执行一次 e.Cancel = True 并且 还不一次性过完。过了一大部份然后执行后面的4事件 了
又回去执行3事件,且时间由37秒跳到了44秒,那么这7秒时间系统干什么去了,如果没有这7秒的耗时,则系统启动就快多了

问题在哪里
后面的几个表:权限控制,用户名表,类别项目都是主数据源中的表,且还是最开始就有的表,表的设置也和其它的一样
为什么这几个表是二次加载判断的,并且,时间那么慢

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/30 17:24:00 [只看该作者]

vars变量,在afterOpenProject之后才能用。

 

请用public变量


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/30 17:28:00 [只看该作者]

BeforeLoadOuterTable 是会循环执行的。一次只能取消一个。很正常。

 回到顶部
帅哥哟,离线,有人找我吗?
santde
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2293 威望:0 精华:0 注册:2015/6/14 18:33:00
  发帖心情 Post By:2015/12/30 17:41:00 [只看该作者]

BeforeLoadOuterTable 是会循环执行的。一次只能取消一个。很正常。这个可以理解

我问的是为什么分两次执行 
BeforeLoadOuterTable  这个事件 

且第二次执行的时候 耗时那么长

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/30 18:52:00 [只看该作者]

具体不清楚,没有细心研究源码。应该是准备信息,你知道你也改不了。


 回到顶部