Foxtable(狐表)用户栏目专家坐堂 → [求助]opento的时候,界面闪烁


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

主题:[求助]opento的时候,界面闪烁

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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]opento的时候,界面闪烁  发帖心情 Post By:2018/3/16 15:08:00 [只看该作者]

界面上有两个窗口。A是共用窗口,用来导航。B是业务窗口(它是停靠窗口,假如属于表X,窗口中绑定表Y),用来指引显示主表数据。

在A中选择不同的导航菜单时,
1、 forms("B").opento("要切换到的主表") ;要切换到不同的主表---maintable = tables("要切换到的主表");
2、主表显示的数据要根据B窗口中的行过滤。即maintable.filter = “XID= ‘” & forms("B").controls("table1").table.current("ID")

问题是:切换导航菜单时,如果要切换到不同的主表,界面会闪烁。
有什么解决方案?
[此贴子已经被作者于2018/3/16 15:09:33编辑过]

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


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

1、先opento,再切换到对应的mainTable;

 

2、闪烁的问题,做个例子看看,看能否处理。


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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/16 15:56:00 [只看该作者]

几乎没有什么逻辑的切换,都会闪。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:opento.zip


BCD间切换,会闪。
DE间切换不会闪(因为它们的maintable 是一样的)
[此贴子已经被作者于2018/3/16 15:58:01编辑过]

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


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

延时

 

Select Case e.Link.Name
    Case "B"
        Forms("A").OpenTo("B")
        Dim sdt As Date = Date.Now
        While Date.Now < sdt.AddSeconds(2)
            Application.DoEvents
        End While
        MainTable = Tables("B")
    Case "C"
        Forms("A").OpenTo("C")
        Dim sdt As Date = Date.Now
        While Date.Now < sdt.AddSeconds(2)
            Application.DoEvents
        End While

       
        MainTable = Tables("C")
    Case "D"
        Forms("A").OpenTo("D")
        Dim sdt As Date = Date.Now
        While Date.Now < sdt.AddSeconds(2)
            Application.DoEvents
        End While
        MainTable = Tables("D")
    Case "E"
        Forms("A").OpenTo("D")
        MainTable = Tables("D")
    Case "F"
        MainTable = Tables("F")
    Case "G"
        MainTable = Tables("G")
End Select


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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/16 16:15:00 [只看该作者]

倒是一种方式,就是设的时间太短了,还是象闪烁。
时间长了,就象系统卡顿

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


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

测试了一下,没找到办法。你只能用4楼的方式处理了。

 

不然你就把窗口A弄成主窗口,里面放两个table控件。


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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/16 17:24:00 [只看该作者]

另外,即使用你所说的方法,有两个问题 
1、卡顿是明显的。
2、例如导航菜单从B切换到C的时候,首先,界面会停顿一下,然后窗口B会关闭,然后当前主表会占满全屏;然后窗口B会打开,然后显示新的主表。这个实际效果是比较差的。

但是,如果把窗口B与主表内容合成一个,那要做的窗口就多了很多呀。

本来就是想尽量利用主表,少设计窗口,看来是不行了

这么看来,opento的功能有点鸡肋了
[此贴子已经被作者于2018/3/16 17:25:52编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/16 17:40:00 [只看该作者]

不过,跟导航窗口合并到一个页面上,用split控件,在导航的link切换时,再控制它是否显示,也不失为一个方法 

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


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

窗口B只需要做一个,你点击导航的时候,动态绑定成不同的表,不就好了?

 

如果确实要用你自己的方法,为什么要弄成停靠?不能弄成共有,然后隐藏起来的形式?


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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/17 8:50:00 [只看该作者]

因为有些界面要显示主表和子表,有些界面只显示主表,用动态绑定表的方式,还要用模拟关联表,也要用split控件,控制显隐,代码工作量也不小。
如果把B窗口设为共有,问题是导航窗口A已经是共有了,两个共有窗口都放左边,不得行呀
所以,A窗口放导航控件和表,可能还合适点
要是两个共有窗口能并列在左边且同时显示就简单了

[此贴子已经被作者于2018/3/17 8:58:54编辑过]

 回到顶部
总数 11 1 2 下一页