VFP如何在文本框中输入文本时会弹出列表框并进行模糊查询?

表data.dbf中有字段 儿童姓名,在表单中有一个文本框text1和列表框list1,怎样才能在文本框中录入文本时,通过查询语句将符合条件的内容搜出并赋值到列表框list1中,然后点击列表框中显示的儿童姓名就可以赋值到表单中的相应位置?
请给出详细的代码!谢谢!如何能够解决问题,定另行加分!!!

建议不要才Change事件中做,因为每输入一个字符他都要去查询,这样慢也没有必要,建议在失去焦点的时候去查询
为什么要用list1那?我一般做有选择付值的是在text1失去焦点的事件里,判断text1不为空的时候进行查询
select * from 表 where 条件自己写,运行查询如果查询返回值没有提示没有满足条件,如果有一行把你要的信息付值给text1,如果大于1行那么建立个窗体,里面放个GIrd把刚才查询的数据放到里面,显示出来,当按回车或者双击选中行的时候把所选行里需要的信息付值给text1,再把刚才窗体关闭
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-15
1、在文本框的InteractiveChange中录入如下代码:
IF LEN(ALLT(THISFORM.TEXT1.VALUE))<>0
SELE 0
SELECT DIST ALLT(药品名称)+ALLT(产地)+ALLT(STR(零售价,4,2)) AS 总称,药品名称,零售价,简称,产地,规格,单位,采购价 FROM 药品登记 GROUP BY 总称 into cursor lindeping WHERE ALLT(THISFORM.TEXT1.VALUE) $ 简称 AND 数量<>0
SELE lindeping
WITH THISFORM.LIST1
.COLUMNCOUNT=7
.ROWSOURCE='ALLT(lindeping.药品名称),ALLT(lindeping.简称),ALLT(lindeping.产地),ALLT(lindeping.规格),ALLT(单位),采购价,零售价'
.ROWSOURCETYPE=6
.REFRESH(0)
.VISIBLE=.T.
ENDWITH
ELSE
THISFORM.LIST1.VISIBLE=.F.
ENDIF
***目的是在文本框中录入文本时,通过查询语句将符合条件的内容搜出并赋值到列表框list1中。

2、在列表框list1中的click中录入如下代码:
with THISFORM
.TEXT1.Value=THISFORM.LIST1.ListItem(THISFORM.LIST1.ListIndex,1)&&药品名称
.TEXT10.Value=VAL(THISFORM.LIST1.ListItem(THISFORM.LIST1.ListIndex,7))&&零售价
endwith
PUBLIC RKBH,YPBH,YPMC,JC,GG,DW,CGJ,LSJ,JGC,YPCD,XXRQ,JSR
JC=THISFORM.LIST1.ListItem(THISFORM.LIST1.ListIndex,2) &&简称
GG=THISFORM.LIST1.ListItem(THISFORM.LIST1.ListIndex,4) &&规格
DW=THISFORM.LIST1.ListItem(THISFORM.LIST1.ListIndex,5) &&单位
CGJ=VAL(THISFORM.LIST1.ListItem(THISFORM.LIST1.ListIndex,6)) &&采购价
JGC=VAL(THISFORM.LIST1.ListItem(THISFORM.LIST1.ListIndex,7))-VAL(THISFORM.LIST1.ListItem(THISFORM.LIST1.ListIndex,6)) &&价格差
YPCD=THISFORM.LIST1.ListItem(THISFORM.LIST1.ListIndex,3) &&产地
YPMC=THISFORM.LIST1.ListItem(THISFORM.LIST1.ListIndex,1)&&药品名称
LSJ=VAL(THISFORM.LIST1.ListItem(THISFORM.LIST1.ListIndex,7))&&零售价
XXRQ=DATE() &&销售日期
JSR=XM &&经手人
WITH THISFORM
.LIST1.VISIBLE=.F.
.TEXT12.setfocus
ENDWITH
***点击文本框搜出的内容,会将此内容赋到表单中的相应位置,赋值后将list1隐藏,并找到操作下一步的焦点。
第2个回答  2013-07-15
第3个回答  2013-07-15
额外人
第4个回答  2013-07-15
查看帮助

VFP如何在文本框中输入文本时会弹出列表框并进行模糊查询?
加两个文本框,TEXT2,TEXT3,显示姓名、年龄 THISFORM.LIST1.DBLCLICK:&&我觉得用双击比单击好 SELECT DATA LOCATE FOR XM=ALLT(THIS.VALUE)THISFORM.TEXT2.VALUE=XM THISFORM.TEXT3.VALUE=NL 如果要查找同名的,必须要有一个编号(唯一),假定字段名BH,C(5),在list中要显示编号和姓名,再加一个...

VFP如何在文本框中输入文本时会弹出列表框并进行模糊查询?
设置0不显示词条列表。1按字母顺序 按字母顺序排列词条,且不区分大小写。2最常用的 (MFU) 首先基于 Count 字段,然后基于 Updated 字段排列"自动完成"词条。3最近使用的 按数据源表中 Updated 字段排列词条。4自定义 用 Weight 字段以自定义方式指定如何排列词条。按降序排列结果(从最高到最低值)。...

VFP如何在文本框中输入文本时会弹出列表框并进行模糊查询?
select * from 表 where 条件自己写,运行查询如果查询返回值没有提示没有满足条件,如果有一行把你要的信息付值给text1,如果大于1行那么建立个窗体,里面放个GIrd把刚才查询的数据放到里面,显示出来,当按回车或者双击选中行的时候把所选行里需要的信息付值给text1,再把刚才窗体关闭 ...

怎么在VFP中实现模糊查询
或 select*from spxxb where like( "*"+m+"*",spmc)

VFP中如何在文本框中输入文字
假设要在文本框中显示“中华人民共和国”,可以在此控件的value属性中设置此行字。也可在代码中写:thisform.text1.value="中华人民共和国"

VFP文本框退格键(删除操作)焦点的问题
在表单init事件中加入下列代码:set notify off Public M_Flag 在text的KeyPress事件中加入如下代码:LPARAMETERS nKeyCode, nShiftAltCtrl IF nKeyCode=127 &&退格键的ASCII码 M_FLAG=.T.ELSE M_FLAG=.F.ENDIF 在text的Valid事件中加入如下代码:IF M_FLAG RETURN .F.ENDIF ...

VFP中关于文本输入框的问题
第1个问题 设置SET CONFIRM ON即可 第2个问题 文本框连接的变量为字符格式,或在设置文本框格式时,位置为左

VFP中表单中如何使文本框一开始显示一段提示的字(要求颜色和文本框输...
form1 的 init 事件中可以写:thisform.text1.value="test"text1的click事件中可以写:thisform.text1.value=""这样运行时 text1中显示test 当你点击text1时,text1中就为空了

vfp9.0下如何计数查询结果记录数 并在文本框中显示 ?
你还要放置一个表格控件来显示查询结果.你在按钮里运行了查询, 这会生成一个临时表.你只要再在后面加上一些代码:1将表格的数据源设为这个临时表 2使用recco()函数得出记录数,将结果赋值给text1.value

VFP中模糊定位或者模糊查询如何使用
select 答案 from qq where 问题 like thisform.text2.value 改成:t2=thisform.text2.value select 答案 from qq where t2$问题

相似回答