| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2940 人关注过本帖
标题:请教一个关于搜索的问题
只看楼主 加入收藏
chengvf
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-3-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:17 
请教一个关于搜索的问题
大家有没有人能帮忙看一下这个问题。多谢。
我手头有一个DBF表,里面包含很多字段,比如编号、姓名、工作单位、所在部门、工资、奖金等。
现在在表单上放了一个命令按钮和几个文本框,用于在文本框输入相应的数值后,根据命令按钮来搜索符合条件的记录。
现在的问题是,比如,我用TEXT1来输入姓名,如果只输入了“张”,那么就会把所有姓张的人员都搜索出来。我希望达到的效果是如果输入的值不是完全相等的,那么就认为是不想等的。但是vf中的=就会把 姓名=张 认为是在查找所有姓张的人。
如果开启了全等比较“==”,好像能解决上面的问题。但是如果TEXT1中的值为空,我现在想在text2中输入工作单位,然后按照工作单位进行搜索,又会导致搜索结果为零。因为text1中的值是空的,和姓名全等比较后结构为.f. 。
后来我又想到了用if,endif来限制条件,如果值不为空则开启全等比较,如果值为空则关闭全等比较,这样好像是能解决问题了。但是现在表单中有四五个文本框,分别可能会输入姓名、工作单位、所在部门、工资等值,如果都要考虑到限定条件将会是一个十分复杂的程序。
请问有没有什么办法能够解决这个问题?多谢!
因为刚学vf,有些问题不太懂,对高手可能这是一个非常简单的问题,但是我就是想不通。希望大家能够帮忙。多谢!
搜索更多相关主题的帖子: 文本框 记录 姓名 
2016-03-30 10:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
用AND邏輯,空的域置爲.T.

授人以渔,不授人以鱼。
2016-03-30 10:35
chengvf
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-3-30
收藏
得分:0 
回复 2楼 TonyDeng
可不可以说得详细一点?不好意思,不太懂。
2016-03-30 10:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
構造搜索條件字符串,每個域用.AND.聯結,若對應的TextBox内容爲空,則填入.T.。

授人以渔,不授人以鱼。
2016-03-30 10:46
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:0 
“空”就不用考虑这个条件项
2016-03-30 10:55
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
不用考虑
2016-03-30 10:58
chengvf
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-3-30
收藏
得分:0 
感谢大家的回答。不过,我想可能有人没看懂我的问题。
如果某一个文本框的内容是空的,那么我们肯定是会选择忽略的,vf也会选择忽略。但是现在的问题是希望在查找姓名、工作单位等字段时能够精确查找,但是一旦设置了精确查找,当某一个文本框内容为空时,又会被认为是不相等。
谢谢。
2016-03-30 11:11
chengvf
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-3-30
收藏
得分:0 
回复 4楼 TonyDeng
请问这个填入 .t. 是什么意思?
2016-03-30 11:13
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用chengvf在2016-3-30 11:13:19的发言:

请问这个填入 .t. 是什么意思?


比如
TextBox1.Value = "abc"
TextBox2.Value = "123"
你構造一個字符串
s1 = TextBox1.Value
s2 = TextBox2.Value
str = "字段1 == '&s1' .AND. 字段2 == '&s2'"
搜索是
FOR/WHERE &str
當TextBox1爲空時,你置
str = ".T. .AND. 字段2 == '&s2'"
這個str用一段循環代碼檢測所有TextBox構造出來,當遇到TextBox.Value爲空時,對應的那一塊就寫.T.,否則寫比較表達式。

授人以渔,不授人以鱼。
2016-03-30 11:20
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:0 
以下是引用chengvf在2016-3-30 11:11:47的发言:

感谢大家的回答。不过,我想可能有人没看懂我的问题。
如果某一个文本框的内容是空的,那么我们肯定是会选择忽略的,vf也会选择忽略。但是现在的问题是希望在查找姓名、工作单位等字段时能够精确查找,但是一旦设置了精确查找,当某一个文本框内容为空时,又会被认为是不相等。
谢谢。

思路问题?
既然“如果某一个文本框的内容是空的,那么我们肯定是会选择忽略的,”,哪来“当某一个文本框内容为空时,又会被认为是不相等。”?
2016-03-30 11:35
快速回复:请教一个关于搜索的问题
数据加载中...
 
   



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

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