以文本方式查看主题 - 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编辑过]
没有必要动态加载表。如果仅仅是想启动的时候快一些,可以全部表不加载,进入系统以后,再找一个机会把全部表加载出来(可以不加载数据)
如果确实要动态加载表,那就只能先移除再加载进来,没有其余的方法。 |