以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于动态加载数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=54244) |
-- 作者:chnfo -- 发布时间:2014/7/24 12:09:00 -- [求助]关于动态加载数据 现在的项目启动速度太慢了,就是因为要加载太多的表(约有40个),还有很多数据。 所以,想初始时,加载部分登录所需要判断的表,然后想在通过TopicBar来动态加载表和数据。 但在帮助的“初始不加载表”中,有这样的代码 Select
Case e.DataTableName Case "表A","表B" \'表A和表B无条件加载 Case "表C" If e.User.Type <> UserTypeEnum.Developer Then \'只有开发者才加载表C e.Cancel = True End If Case Else \'其他所有表默认都不加载 e.Cancel = True End Select 这样,可以实现在初始启动系统时,只加载必要的表(如用户、权限等,数据量也少,速度快了很多) 然后是动态加载数据的内容,有一个“一个小例子”,这个也可以解决动态加载的问题。 新的问题是,后面加载的表,有些要用到DropForm这个东东。 在“自定义录入界面之二”中,要求这个代码在AfterOpenProject事件中 5、在项目事件AfterOpenProject事件中加入代码: Tables("订单").Cols("客户ID").DropForm = "窗口1" 但最开始并没有加载DataTables("订单")这个表,显然启动的时候就会出错。 该如何解决呢? |
-- 作者:lsy -- 发布时间:2014/7/24 14:05:00 -- 表的PrepareEdit事件,可以在全局表事件,也可以是在具体某个表的表事件中。 |
-- 作者:有点甜 -- 发布时间:2014/7/24 14:28:00 -- 呃,这句代码可以放在其他事件啊。看2楼 |
-- 作者:chnfo -- 发布时间:2014/7/24 14:37:00 -- 你的意思是 Tables("订单").Cols("客户ID").DropForm = "窗口1" 可以放在订单表的PrepareEdit事件里? 那就有点小问题,每次打开订单表时都会去生成这个窗口,不太合适 [此贴子已经被作者于2014-7-24 14:43:30编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/7/24 14:38:00 -- 以下是引用chnfo在2014-7-24 14:37:00的发言:
你的意思是 Tables("订单").Cols("客户ID").DropForm = "窗口1" 可以放在订单表的PrepareEdit事件里?
任意事件都可以,你觉得哪里方便就放在哪里 |
-- 作者:chnfo -- 发布时间:2014/7/24 14:47:00 -- 如果不能放在项目打开事件里,那是否表示每次订单表都得生成这个下拉窗口? |
-- 作者:Bin -- 发布时间:2014/7/24 15:11:00 -- 只是打开这个窗口而已,放心用好了,不影响性能. |