以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  全局表事件启动开关的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=26568)

--  作者:zharen110
--  发布时间:2012/12/8 7:46:00
--  全局表事件启动开关的问题
我想在窗口中动态加载一个sqlquery表,只有当窗口被打开的时候才会加载,项目启动时不会自动打开窗口,
Dim tbl As WinForm.Table
tbl = e.Form.CreateSQLQuery(
"Table1""select * from ddb","sss")
tbl.SetBounds(
1010600400
)
e.Form.AddControl(tbl)
经测试表能成功创建
在全局表DrawCell事件中写入代码,
然后在项目事件Initialize加入代码:


    datatable("窗口1_table1").GlobalHandler.
DrawCell = True


这样会报错表不存在之类的错误


请教各位高人怎么实现

[此贴子已经被作者于2012-12-8 7:48:18编辑过]

--  作者:lin_hailun
--  发布时间:2012/12/8 8:47:00
--  
 报错是因为这个窗口没有打开自然这张表就不存在。

 动态加载有好几种方法,不一定要动态创建表控件的。

 你可以先创建好这个表控件,写好相应的事件,然后在打开窗口的时候动态加载内容。

http://www.foxtable.com/help/topics/1933.htm

--  作者:zharen110
--  发布时间:2012/12/8 9:16:00
--  
我之前项目都是这样干的,而且打开窗口的时候不加载任何数据,即使这样项目启动速度任然很慢,所有才来研究动态加载表
个人感觉CurrentChanged事件最耗启动时间,如果有10张表以上都写了CurrentChanged事件代码,那没有15秒普通配置的电脑根本启动不了

--  作者:lin_hailun
--  发布时间:2012/12/8 9:35:00
--  
 嗯嗯,项目启动的时候,默认会执行currentChanged事件。最好是把这个代码放到positionchanged事件里去。

 明白了……那你在窗口打开的时候再添加这句代码。

 datatable("窗口1_table1").GlobalHandler.DrawCell = True

--  作者:zharen110
--  发布时间:2012/12/8 9:56:00
--  
好的 谢谢哈