以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]loadfilter的问题 (http://foxtable.com/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 -- 例子。 |