以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于DataTables的LoadFilter 时机  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24046)

--  作者:zoomify
--  发布时间:2012/9/28 8:47:00
--  关于DataTables的LoadFilter 时机

我在AfterOpenproject中设置了 显示一个窗体,想让用户选择加载的数据类型,然后执行

DataTables("表A").LoadFilter = "***"
DataTables("表A").Load()

加载指定数据,

 

但发现窗体显示前,数据都已经全加载了,(还没有选择却看到窗口后面的表里有数据了)

然后把窗体选择放到beforeopenproject ,却还不存在 DataTables("表A").

 

放到beforeloadinnertable也不行!

 

请问这个该怎么实现了,难道要隐藏那些表?


--  作者:zoomify
--  发布时间:2012/9/28 8:57:00
--  

对于内部表,如果希望初始不加载任何数据,处理起来会相对麻烦一些,需要使用代码,这是应用篇中唯一需要使用代码的地方。
假定希望
订单,产品, 客户三个表初始不加载任何数据,首先打开项目属性设置窗口,选择项目事件页,单击BeforeLoadInnerTable事件旁的按钮"...":

最后将代码设置为:

Select Case e.DataTableName
   
Case "订单","产品","客户"
        e.Filter =
"[_Identify] Is Null"
End
Select

 

虽然可以用这个,但其实后台好像还是先把 DataTables 全load了,屏幕一闪而过(看到数据出来了).然后才是没有数据.

没有一个控制先什么都不要加载的时机么?

[此贴子已经被作者于2012-9-28 8:58:45编辑过]

--  作者:lin_hailun
--  发布时间:2012/9/28 9:41:00
--  
 应该不会的,把你的项目弄来看看……

 或者试一下 e.Filter = "False"

--  作者:zoomify
--  发布时间:2012/9/28 10:15:00
--  

我明白了,启动之后,停在某个表a中,这之前会闪现别的表(别的表全加载),     让我误以为数据都加载上来了.

 

其实这样闪现别的表好像没有必要呢.