以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]loadfilter的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60634)

--  作者:chnfo
--  发布时间:2014/11/28 9:38:00
--  [求助]loadfilter的问题
在一个窗口中使用了分页夹控件,每个分页夹中都有一个或多个表,这些表我都使用了normal类型。

问题:
1、是否可以在SelectedIndexChanging事件中预先加载将会切换到的分页夹中的表的数据,即在这个控件事件中直接loadfilter。
例如表1是在tab11中,表2在tab2中,是否可以这样

 Select Case tab.SelectedPage.Name
     Case "tab1"
         datatables("表1的源表").loadfilter = "条件1"
     Case "tab2"
         datatables("表2的源表").loadfilter = "条件2"
 end select 

2、在这个loadfiter中不能使用表达式列?
   例如
   datatables("表1的源表").loadfilter = "A = 1  and B = 2",这里面A是数据列,B是表达式列。

我在这样做了之后,提示错误
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.10.23.1
错误所在事件:加载[表1的源表]失败!
详细错误信息:
至少一个参数没有被指定值。

[此贴子已经被作者于2014-11-28 9:39:19编辑过]

--  作者:有点甜
--  发布时间:2014/11/28 9:41:00
--  

 表达式列不能直接用。

 

 要写成表达式对应的数据列,比如  数量 * 单价 = 200


--  作者:chnfo
--  发布时间:2014/11/28 9:54:00
--  
那这样是不是就可以了?
datatables("表1的源表").loadfilter = "A = 1"
datatables("表1的源表").load()

tables("窗口1_table1").filter = "B=2"

先更新,再执行筛选。
只是第一步要load的数据量有点大,估计多的时候,会达到2万行……

不知道效率会怎么样。

如果使用sqltable,用fill方法,同样不能使用表达式,还是得这么干
[此贴子已经被作者于2014-11-28 9:57:01编辑过]

--  作者:Bin
--  发布时间:2014/11/28 9:56:00
--  
聪明
--  作者:有点甜
--  发布时间:2014/11/28 10:02:00
--  
 你也可以这样做。
--  作者:chnfo
--  发布时间:2014/11/30 11:26:00
--  
再请教:
我实际测试了一下,如果在SelectedIndexChanging事件中,用loadfilter和load事件,将即将切换的界面的数据加载。
 Select Case tab.SelectedPage.Name
     Case "A"
         datatables("表1的源表").loadfilter = "加载条件1"
         datatables("表1的源表").load()
     Case "B"
         datatables("表2的源表").loadfilter = "加载条件2"
         datatables("表2的源表").load()
     Case "C"
         datatables("表3的源表").loadfilter = "加载条件3"
         datatables("表3的源表").load()
 end select 

然后用SelectedIndexChanged事件里,用窗口表的t.filter 。
Select Case tab.SelectedPage.Name
     Case "A"
         tables("窗口1_table1).filter = "显示条件1"
     Case "B"
         tables("窗口1_table2).filter = "显示条件2"
     Case "C"
         tables("窗口1_table3).filter = "显示条件3"
 end select

实际结果是:
现在有ABC三个分页夹,如果直接点到B分页夹,tables("窗口1_table2).filter = "显示条件2"并不起作用,需要再点一下A或C再切回B才起作用,为什么呢?


--  作者:有点甜
--  发布时间:2014/11/30 11:30:00
--  
 例子。