以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]MainTableChanged和CurrentTableChanged事件代码会执行两次?-确认是bug  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=142670)

--  作者:shenyl0211
--  发布时间:2019/11/3 12:39:00
--  [求助]MainTableChanged和CurrentTableChanged事件代码会执行两次?-确认是bug
一、测试代码
MainTableChanged中代码:
Select Case MainTable.Name
    Case  "合同管理"
        MessageBox.Show(1)
End Select

CurrentTableChanged中代码:

Select Case CurrentTable.Name
    Case  "合同管理"
        MessageBox.Show(2)
End Select
二、系统代码区别
在其他代码都不变的前提下:
A测试方案:在BeforeLoadOuterTable中加载所有65张表,启动完成之后进行上述表格切换,上述测试代码只执行一次;
B测试方案:在BeforeLoadOuterTable中加载3张表、在AfterOpenProject中加载剩余的62张表启动完成之后进行上述表格切换,上述测试代码会执行二次。

请问高手:同样是加载了全部表,只是加载方式不一样,为什么结果就不一样呢?特别是其他代码都不变。
[此贴子已经被作者于2019/12/27 20:29:01编辑过]

--  作者:有点蓝
--  发布时间:2019/11/3 21:00:00
--  
我测试没有问题。上传实例说明
--  作者:shenyl0211
--  发布时间:2019/11/3 23:36:00
--  
找到原因了,是动态加载表造成的。
谢谢蓝版。

--  作者:shenyl0211
--  发布时间:2019/11/5 10:44:00
--  
蓝版:经过测试,我更迷糊了。最简单的测试情况反映在一楼。请指教。
--  作者:有点蓝
--  发布时间:2019/11/5 11:13:00
--  
我测试还是没有问题。只弹出了2次提示框

您说的执行二次是指这个2个事件分别各执行了1次,总共弹出了2次提示框?

还是说每个事件都执行了2次,总共弹出了4次提示框?

--  作者:shenyl0211
--  发布时间:2019/11/5 11:28:00
--  
蓝版:是每个事件都执行了2次。
先放下吧,反正在速度上没有什么影响,用户也感觉不到差别。


--  作者:有点蓝
--  发布时间:2019/11/5 11:46:00
--  
有问题就解决,不然可能会引发其它的问题。

做个实例发过来测试

--  作者:shenyl0211
--  发布时间:2019/11/6 14:27:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:主表切换测试.foxdb


MainTableChanged事件代码:MessageBox.Show(MainTable.Name)
现象:
1.只要初始加载所有表结构,就不会发生2次切换主表。
2.即使初始没有加载所有表结构,只要以后加载的表不是关联表,也不会发生2次切换主表。
    本例初始加载非关联表【表A】、关联表【表B】和【表C】,不会发生2次切换主表,相当于现象1。
    如果点击功能区菜单按钮【加载非关联表F】,也不会发生2次切换主表,也相当于现象1。
3.如果初始没有加载所有表结构,只要以后加载的表是关联表,已经加载的所有表(不管是否关联表),都会发生2次切换主表。
   如果在现象2基础上点击按钮【加载关联表D和E】,则之后所有主表的切换都会发生2次。
总结:
问题出在加载关联表上。(我的版本日期是2019-10-26)

[此贴子已经被作者于2019/11/6 14:28:17编辑过]

--  作者:有点蓝
--  发布时间:2019/11/6 14:43:00
--  
是有问题,已反馈
--  作者:81538475
--  发布时间:2020/3/20 16:49:00
--  
请问这个已经解决了吗