以文本方式查看主题 - 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个弯 |