以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [讨论]关于项目启动后,加载所有外部表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158224)

--  作者:工匠
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2020/11/12 9:32:00
--  
没有其它办法,只能列出具体的表名。

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

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

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

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

谢谢!

--  作者:有点蓝
--  发布时间:2020/11/12 11:14:00
--  
把加载代码放到主页窗口的计时事件里执行,就会在窗口打开后在执行
--  作者:工匠
--  发布时间:2020/11/12 22:15:00
--  
谢谢老师,现在把执行加载表代码放在主页一个按钮里,按钮设置为显示,把执行这个按钮事件放在窗口进入控件事件,进入系统主页界面后,按钮是显示状态就自动执行加载其他表,加载后自动把放代码的按钮隐藏就可以了。绕了2个弯