Foxtable(狐表)用户栏目专家坐堂 → [求助]loadfilter的问题


  共有2393人关注过本帖树形打印复制链接

主题:[求助]loadfilter的问题

帅哥哟,离线,有人找我吗?
chnfo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2202 积分:18130 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]loadfilter的问题  发帖心情 Post By:2014/11/28 9:38:00 [只看该作者]

在一个窗口中使用了分页夹控件,每个分页夹中都有一个或多个表,这些表我都使用了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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/28 9:41:00 [只看该作者]

 表达式列不能直接用。

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2202 积分:18130 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/11/28 9:56:00 [只看该作者]

聪明

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/28 10:02:00 [只看该作者]

 你也可以这样做。

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2202 积分:18130 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By: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才起作用,为什么呢?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/30 11:30:00 [只看该作者]

 例子。

 回到顶部