以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  项目打开速度慢  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=178283)

--  作者:18920118515
--  发布时间:2022/6/28 9:45:00
--  项目打开速度慢
Syscmd.Project.Update(False,True)\'自动升级
If Syscmd.Project.Update(False,False) = False Then \'如果没有升级
    
    Forms("主窗口").Show()
    Forms("主窗口").Controls("Label2").text = "正在重置[商品车库存]的数据"
    DataTables("商品车库存基础表").DataCols("生产日期").RaiseDataColChanged()
    DataTables("商品车库存基础表").DataCols("入库日期").RaiseDataColChanged()
    DataTables("商品车库存基础表").DataCols("资源匹配日期").RaiseDataColChanged()
    DataTables("商品车库存基础表").DataCols("资源匹配后到车日期").RaiseDataColChanged()
    DataTables("商品车库存基础表").DataCols("关联索引列").RaiseDataColChanged()
    Forms("主窗口").Controls("Label2").text = "正在重置[商品车销售]的数据"
    DataTables("商品车销售基础表").DataCols("关联索引列").RaiseDataColChanged()
    DataTables("商品车销售基础表").DataCols("关联索引二列").RaiseDataColChanged()
    DataTables("商品车销售基础表").DataCols("在保客户实际保险止期").RaiseDataColChanged() \'重新计算天数
    DataTables("商品车销售基础表").DataCols("脱保客户预计保险止期").RaiseDataColChanged() \'重新计算天数
    Forms("主窗口").Controls("Label2").text = "正在重置[保险明细]的数据"
    DataTables("保险明细表").DataCols("关联索引二列").RaiseDataColChanged()
    Forms("主窗口").Controls("Label2").text = "正在保存数据"
    DataTables("商品车库存基础表").save()
    DataTables("商品车销售基础表").save()
    Forms("主窗口").Controls("Label2").text = ""
    
    StatusBar.Message3 = Date.Today & "  " &  User.Name


老师,以上代码,在打开项目的时候,输入用户名和密码,屏幕要等待很长时间才会出现主窗口,但是上边这段代码我想实现:以最短的时间打开主窗口,再将运行过程描述体现在主窗口的Label2控件上,但是,运行结果不是希望的这样,您给指导一下,或者有什么更好的建议可以提升项目打开速度的吗



--  作者:有点蓝
--  发布时间:2022/6/28 9:51:00
--  
首先,AfterOpenProject事件没有执行完毕,是看不到任何窗口的(这个事件打开的模式窗口除非)。

其次升级代码重复了,去掉第一句【Syscmd.Project.Update(False,True)\'自动升级

如果要先显示窗口,建一个计划管理,间隔200毫秒,把处理和显示的代码放到计划管理里执行,然后加上doevent(http://www.foxtable.com/webhelp/topics/1476.htm

计划1
   Forms("主窗口").Controls("Label2").text = "正在重置[商品车库存]的数据"
Application.DoEvents
    DataTables("商品车库存基础表").DataCols("生产日期").RaiseDataColChanged()
    DataTables("商品车库存基础表").DataCols("入库日期").RaiseDataColChanged()
    DataTables("商品车库存基础表").DataCols("资源匹配日期").RaiseDataColChanged()
    DataTables("商品车库存基础表").DataCols("资源匹配后到车日期").RaiseDataColChanged()
    DataTables("商品车库存基础表").DataCols("关联索引列").RaiseDataColChanged()
    Forms("主窗口").Controls("Label2").text = "正在重置[商品车销售]的数据"
Application.DoEvents
    DataTables("商品车销售基础表").DataCols("关联索引列").RaiseDataColChanged()
    DataTables("商品车销售基础表").DataCols("关联索引二列").RaiseDataColChanged()
    DataTables("商品车销售基础表").DataCols("在保客户实际保险止期").RaiseDataColChanged() \'重新计算天数
    DataTables("商品车销售基础表").DataCols("脱保客户预计保险止期").RaiseDataColChanged() \'重新计算天数
    Forms("主窗口").Controls("Label2").text = "正在重置[保险明细]的数据"
Application.DoEvents
    DataTables("保险明细表").DataCols("关联索引二列").RaiseDataColChanged()
    Forms("主窗口").Controls("Label2").text = "正在保存数据"
Application.DoEvents
    DataTables("商品车库存基础表").save()
    DataTables("商品车销售基础表").save()
    Forms("主窗口").Controls("Label2").text = ""
Application.DoEvents


AfterOpenProject事件
If Syscmd.Project.Update(False,False) = False Then \'如果没有升级
    Forms("主窗口").Show()
endif

--  作者:18920118515
--  发布时间:2022/6/28 9:55:00
--  
谢谢老师,太感谢了
--  作者:18920118515
--  发布时间:2022/6/28 10:19:00
--  
老师,项目打开报错,然后强行退出,请问如何进入项目的编辑状态
--  作者:有点蓝
--  发布时间:2022/6/28 10:33:00
--  
参考:http://www.foxtable.com/webhelp/topics/1057.htm