以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 动态加载关联表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=120148)

--  作者:gfj7126
--  发布时间:2018/6/8 10:24:00
--  [求助] 动态加载关联表

我希望实现以下功能,请大家帮助。均为外部数据表。

方案一:

一:在项目启动时,根据用户分组确定加载哪些数据表。

例:当为生产人员组时,加载表A、表B、表C ,当为技术组时,加载表A,表D、表F

以上功能在BeforeLoadOuterTable中已实现,但如果在项目打开后,利用用户切换,由生产人员组切换成了技术组,并不会加载表D、表F.

以上用户切换难道要重启一次项目方可实现?

 

方案二:

一:在项目启动时只加载主页面表(表A)和用户管理表(表B),其它的表都不加载。

二:在主页面点击按键 A1时,打开生产录入窗口,同时加载表C,表D、表E 、表H 。其中表C与表D\\表E相关联。

三:在主页面点击按键A2时,打开尺寸录入窗口,同时加载表C,表F,表G .其中表C与表F\\表G相关联。(注:表C在点击A1时已加载了)

以上在实施时,在加载表D时,总是会报BeforeSelChange异常的错误,其中A1第一次点击时,因为三个表都未加载,所以可以顺利加载,

第二次点击时,因为加载过相应的表,再加载会报错。

以上,如何解决,谢谢!

 

[此贴子已经被作者于2018/6/8 10:25:03编辑过]

--  作者:有点甜
--  发布时间:2018/6/8 10:33:00
--  

1、开始的时候,任何表格都不加载。然后再在LoadUserSetting事件(或者你自己切换用户的窗口),写上DataTables.Load("表A")这样的代码。

 

2、切换用户,或者增加功能的时候,先移除unload表格,然后再重新load相关的表格。


--  作者:gfj7126
--  发布时间:2018/6/8 10:46:00
--  

先移除表格是个很麻烦事,因为用户有N多个,相互间进行切换时,有时间都忘记用户表单哪些表为共同加载的表,哪几个共同加载的表又是有关联表存在的。尤其是改善一个完成了几年的老项目,所以,只能用移除全部存在有关联的表,然后再加载。这样的效率感觉还不如项目启动时就全部加载。不知道有没有更加方便简单的做法。

 

[此贴子已经被作者于2018/6/8 10:47:58编辑过]

--  作者:有点甜
--  发布时间:2018/6/8 10:53:00
--  
以下是引用gfj7126在2018/6/8 10:46:00的发言:

先移除表格是个很麻烦事,因为用户有N多个,相互间进行切换时,有时间都忘记用户表单哪些表为共同加载的表,哪几个共同加载的表又是有关联表存在的。尤其是改善一个完成了几年的老项目,所以,只能用移除全部存在有关联的表,然后再加载。这样的效率感觉还不如项目启动时就全部加载。不知道有没有更加方便简单的做法。

 

[此贴子已经被作者于2018/6/8 10:47:58编辑过]

 

没有必要动态加载表。如果仅仅是想启动的时候快一些,可以全部表不加载,进入系统以后,再找一个机会把全部表加载出来(可以不加载数据)

 

如果确实要动态加载表,那就只能先移除再加载进来,没有其余的方法。