Foxtable(狐表)用户栏目专家坐堂 → 如何确定表加载完毕?


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

主题:如何确定表加载完毕?

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


加好友 发短信
等级:童狐 帖子:221 积分:2195 威望:0 精华:0 注册:2011/12/14 9:56:00
如何确定表加载完毕?  发帖心情 Post By:2019/3/19 15:55:00 [只看该作者]

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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/19 16:00:00 [只看该作者]

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

 

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


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


加好友 发短信
等级:童狐 帖子:221 积分:2195 威望:0 精华:0 注册:2011/12/14 9:56:00
回复:(有点甜)这个代码是同步的,执行完毕,就已经...  发帖心情 Post By:2019/3/19 16:19:00 [只看该作者]

我的是设计是这样的,点击一个模块名称后,先加载菜单,然后加载模块需要的表。但每次都是菜单先加载完,表加载慢。这个时候点击菜单的时候就出错。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/19 16:23:00 [只看该作者]

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

 

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

 

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


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


加好友 发短信
等级:童狐 帖子:221 积分:2195 威望:0 精华:0 注册:2011/12/14 9:56:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:221 积分:2195 威望:0 精华:0 注册:2011/12/14 9:56:00
回复:(有点甜)1、报什么错?贴出错误; 2...  发帖心情 Post By:2019/3/19 16:42: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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/19 16:45:00 [只看该作者]

 

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

 

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

 

 


 回到顶部