以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  如何确定表加载完毕?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=132314)

--  作者:shanshuizhujian
--  发布时间:2019/3/19 15:55:00
--  如何确定表加载完毕?
我的程序是动态加载表,不同模块加载不同的表,但是再加载表的过程中很慢,在表加载过程中如果用户点击别的按钮,这时程序就会出错。我想在加载的时候用户不能操作,等待加载完再操作。如何设计?
DataTables.Load(strtabname),这个语句是异步的吗?为什么没有加载完可以进行别的操作?这个语句能否返回一个加载完毕的值?我可以根据这个值进行判断是否加载完毕?谢谢。

--  作者:有点甜
--  发布时间:2019/3/19 16:00:00
--  

这个代码是同步的,执行完毕,就已经加载了。

 

你可以用 datatables.contains("表A") 来判断是否已经加载表。


--  作者:shanshuizhujian
--  发布时间:2019/3/19 16:19:00
--  回复:(有点甜)这个代码是同步的,执行完毕,就已经...
我的是设计是这样的,点击一个模块名称后,先加载菜单,然后加载模块需要的表。但每次都是菜单先加载完,表加载慢。这个时候点击菜单的时候就出错。
--  作者:有点甜
--  发布时间:2019/3/19 16:23:00
--  

1、报什么错?贴出错误;

 

2、你可以尝试先加载表,然后加载菜单;

 

3、做一个对应例子发上来测试。


--  作者:shanshuizhujian
--  发布时间:2019/3/19 16:41:00
--  
\'\'加载本模块所需要的表
Dim dtm As DataTable
Dim strtabname As String
strtabname = DataTables("itb_SysTable").GetComboListString("strTabName","[strModelName] =\'" & myname & "\'")
\'DataTables.Load(strtabname)‘这句代码更换成下面的代码了。不用这一句了,让人感觉有迟钝。
\'加一个判断,看看是否所有的表都加载完毕
Dim tbnames() As String  = strtabname.Split("|")
Forms("加载提示窗口").open
For Each tbname As String In tbnames
    DataTables.Load(tbname)
    Forms("加载提示窗口").Controls("Label1").text = "正在加载" & tbname
Next
Forms("加载提示窗口").close

--  作者:shanshuizhujian
--  发布时间:2019/3/19 16:42:00
--  回复:(有点甜)1、报什么错?贴出错误; 2...
\'\'加载本模块所需要的表
Dim dtm As DataTable
Dim strtabname As String
strtabname = DataTables("itb_SysTable").GetComboListString("strTabName","[strModelName] =\'" & myname & "\'")
\'DataTables.Load(strtabname)
\'加一个判断,看看是否所有的表都加载完毕
Dim tbnames() As String  = strtabname.Split("|")
Forms("加载提示窗口").open
For Each tbname As String In tbnames
    DataTables.Load(tbname)
    Forms("加载提示窗口").Controls("Label1").text = "正在加载" & tbname
Next
Forms("加载提示窗口").close

--  作者:有点甜
--  发布时间:2019/3/19 16:45:00
--  

 

报什么错?贴出对应的错误?

 

做一个出错的实例发上来看看