| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1914 人关注过本帖
标题:[求助]如何实现多条件选择表中数据放入另一个临时表中
只看楼主 加入收藏
fatspring
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-1-25
收藏
 问题点数:0 回复次数:8 
[求助]如何实现多条件选择表中数据放入另一个临时表中
表 "table" 中有字段 aa, bb ,cc ,dd

有三个optiongroup 控件, 均有两个option 为“全部”,“条件”,条件均对应一个combo控件

三个combo数据为aa, bb, cc的值


现在要实现的是在不同的选择下实现数据选择。
如:optiongroup1 为全部, optiongroup2 为条件的 optiongroup3 为条件 等等

我曾经试用三个 IF 通过临时表的筛选,希望得出结果,但发现不可以把临时表的数据提出放到另一个临时表中。

也猜想过,通过DO CASE 实现三个optiongroup 的组合实现结果。(由不同的组合通过一条select...where 语句找出)
但如果用DO CASE 的话,再多几个条件选项,不就有几十个组合了?


希望有好想法的朋友指教一下。不胜感激。


最后的表只是用作grid 显示的.
搜索更多相关主题的帖子: 数据 条件 选择 
2007-01-25 11:04
cxx7
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2005-12-27
收藏
得分:0 

直接用代码写不是可以了吗,为什么还要把表放到combobox里。。。。用select联接查询到一个临时表里。。。

2007-01-25 14:11
fatspring
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-1-25
收藏
得分:0 
combo 里面是筛选的内容,最终要得到的表是经过 3 个optiongroup 筛选后的表。当然,如果三个选项都是选了全部,就不用进行筛选咯

比如:第一个选的是日期,第二个要选的是时间。
那么就得在经过日期筛选后得出去数据中,再次筛选符合时间条件的数据。

如次类推。
2007-01-25 14:30
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 

用如下的结构生成条件并查找:
lnString='.t.'
if ...
lnString=lnString+...
endif
if ...
...
endif
...
set filter to (lnString)
go top


感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2007-01-25 16:10
fatspring
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-1-25
收藏
得分:0 

请问set filter to (/expression) 的expression 的格式是怎样的呢

2007-01-25 16:31
fatspring
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-1-25
收藏
得分:0 

tiger 还在吗。我顶~~~~~

2007-01-25 16:52
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
4楼不是写出来了吗?若要详细语句,请贴上你的表单运行前的状况及运行时的状况【图】

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2007-01-25 22:01
fatspring
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-1-25
收藏
得分:0 

表:table3 字段:aa, bb
表单中只有一个text 和 一个command

关于你给的command.click代码
SELECT table3
lsString = 'aa==" ' + ALLTRIM(thisform.text1.Value) + ' " '
SET FILTER TO (lsString)
GO TOP
BROWSE

我直接复制过去运行还是报错
you must be use logical expression with Filter
你必须给filter 设置逻辑表达式
指向set filter to (lsString)


如果我改成这样
SELECT table3
SET FILTER TO aa==ALLTRIM(thisform.text1.Value)
GO TOP
BROWSE

也会报错
object is not contained in a Form
对像不在表单里
指向browse

如果不要browse 就不会报错,但也就不知道结果怎样了。


假设我在表单里再加一个combo 控件
RowSourceType = SQL
Form.init 中加入
RowSource = " select aa from table3 into cursor ls "

那进行set filter 命令后会出问题吗。


最后我查了一下set filter 命令说明。如果使用 SET FILTER 命令,则表中只有满足逻辑表达式 lExpression 指定的条件的记录才可以被访问。所有访问该表的命令都必须遵守 SET FILTER 指定的条件。SELECT - SQL 不遵守当前的筛选条件。

browse 的问题是不是因此引起的?那combo的应该不会有问题咯??????

2007-01-26 10:31
fatspring
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-1-25
收藏
得分:0 

tiger 老大,你的代码中我知道是想把条件都放到sString变量中的,然后再set filter to 它。
但它又报错说没设置逻辑表达式,我一直在明明设了呀,难道它没转换过来?
想了N久后突然想起一般在命令实现的代码中调用其它变量值的时候会在变量名前面加一个 & 号。
但你的代码也要改为

SELECT table3
sString = "alltrim(aa)==ALLTRIM(thisform.text1.value)"
SET FILTER TO &sString
GO TOP
thisform.grid1.RecordSource = "table3"

由于用了filter,所以 browse 命令就不给用了,我用了grid 来看结果。
可以看到text 里面写的数据.


在此先谢谢你啦

2007-01-26 11:26
快速回复:[求助]如何实现多条件选择表中数据放入另一个临时表中
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036183 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved