Foxtable(狐表)用户栏目专家坐堂 → [讨论]关于项目启动后,加载所有外部表


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

主题:[讨论]关于项目启动后,加载所有外部表

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


加好友 发短信
等级:二尾狐 帖子:550 积分:4991 威望:0 精华:0 注册:2017/4/20 11:08:00
[讨论]关于项目启动后,加载所有外部表  发帖心情 Post By:2020/11/11 21:34:00 [只看该作者]

老师好:
请教一下,在启动项目的时候,分2段加载外部表:
1.启动项目时,设置了只加载几个表(已经实现了)
2.如何在系统完全打开了的时候(已经显示主页窗口),再一次性加载完所有之前没有加载的外部表。有接近100个表,这样的话既解决了项目启动慢的问题,又不会对后续操作有影响,而且不用在每个地方写加载相应表的代码。

需要一段代码,在窗口"主页"打开后一次性加载所有剩下的表(不用单个列出每个表名的代码),请教老师,这段代码怎么写。

If DataTables.Contains("主页") = True Then
    DataTables.Load("采购订单|采购订单明细记录|SJ") '("采购订单|采购订单明细记录|SJ"),这段代码如何不用列出具体的表名,而能够一次性加载
    MainTable = Tables("主页")
End If

谢谢!

[此贴子已经被作者于2020/11/11 21:51:29编辑过]

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


加好友 发短信
等级:超级版主 帖子:109728 积分:558356 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/12 9:32:00 [只看该作者]

没有其它办法,只能列出具体的表名。

另外这种方法其实和一开始就全部加载没有什么区别。在加载这100个表的时候一样也做不了其它操作。

比较合理的方法是什么时候用到表的时候再加载,比如,需要使用用户管理功能,就先加载和用户管理有关的表,再打开相关窗口;需要使用销售开单功能,就先加载销售开单有关的表,在打开销售单功能窗口

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


加好友 发短信
等级:二尾狐 帖子:550 积分:4991 威望:0 精华:0 注册:2017/4/20 11:08:00
  发帖心情 Post By:2020/11/12 10:27:00 [只看该作者]

谢谢老师,是这样的,如果分2端加载表的话,系统看起来启动会快很多。一般情况下,启动系统后,都要等几秒才开始操作的。我现在把表名全部写进去在一个按钮里(开始工作),这个按钮放在主页窗口界面。然后在主页的加载窗口事件里加入执行这个代码,但是还是在提示完启动信息后,会有几秒全屏空白,才会进入到主页界面。按逻辑应该是要进入显示了主页界面后才会执行加载表代码,请教一下,如何实现在已经显示里主页的窗体后,才会自动去执行那段加载表的代码呢,谢谢老师!

执行加载:e.Form.Controls("开始工作").performClick  ''加载其余表(放在窗口事件:AfterLoad  以及放在项目事件:AfterOpenProject  里都是一样的

谢谢!

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


加好友 发短信
等级:超级版主 帖子:109728 积分:558356 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/12 11:14:00 [只看该作者]

把加载代码放到主页窗口的计时事件里执行,就会在窗口打开后在执行

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


加好友 发短信
等级:二尾狐 帖子:550 积分:4991 威望:0 精华:0 注册:2017/4/20 11:08:00
  发帖心情 Post By:2020/11/12 22:15:00 [只看该作者]

谢谢老师,现在把执行加载表代码放在主页一个按钮里,按钮设置为显示,把执行这个按钮事件放在窗口进入控件事件,进入系统主页界面后,按钮是显示状态就自动执行加载其他表,加载后自动把放代码的按钮隐藏就可以了。绕了2个弯

 回到顶部