2,723
社区成员
发帖
与我相关
我的任务
分享
Text+List查询
--设表单上的这个文本框和列表框分别为:Text1和List1
1、
--表单Init事件代码:
This.KeyPreview=.T.
This.List1.Visible=.F.
2、
--表单KeyPress事件代码:
Lparameters nKeyCode, nShiftAltCtrl
If (nKeyCode=5 Or nKeyCode=24 Or nKeyCode=13) And This.List1.Visible And This.List1.ListItemId>0 And This.Text1.Tag='1'
If nKeyCode=13
This.Text1.Value=This.List1.Value
This.List1.Visible=.F.
Else
lnListID=Iif(nKeyCode=5,Max(This.list1.ListItemId-1,1),Min(This.list1.ListItemId+1,This.list1.ListCount))
This.list1.ListItemId=lnListID
Nodefault
Endif
Endif
3、
--Text1的GotFocus事件代码:
This.Tag='1'
--Text1的LostFocus事件代码:
*Thisform.List1.Visible=.F.
This.Tag=''
--Text1的InteractiveChange事件代码:
If !Empty(This.Value)
Thisform.list1.RowSource=Null
Select 名称 From 商品名 Where Alltrim(This.Value)$拼音简码 Into Cursor t1 Order By 名称
Thisform.list1.RowSourceType=6
Thisform.list1.RowSource="t1.名称"
If Reccount('t1')>0
Thisform.List1.ListItemId=1
Thisform.List1.Visible=.T.
Else
Thisform.List1.Visible=.F.
Endif
Else
Thisform.List1.Visible=.F.
Endif
--List1 的Click事件代码:
Thisform.Text1.Value=This.List1.Value
This.Visible=.F.
*-----------------------------------------------
ComboBox组合框查询
by:cbl518
PUBLIC A0[1]
if lenc(trim(thisform.combo1.text))=1
with thisform.combo1
SELECT 姓名 FROM 你的数据源表 WHERE ATCC(.text,姓名)=1 INTO ARRAY A0
if !empt(A0)
.RowSource="A0"
.RowSourceType= 5
.SetFocus
KEYBOARD '{F4}'
else
MESSAGEBOX("没有你要查询的数据",64,"温馨提示")
endif
endwith
endif
1 把以上代码添加组合框的: InteractiveChange 事件中!
2 你的数据源必须来自于一个数据表!,并将表名和字段名替换正确!
3 你的组合框控件对象引用,一定替换正确!
*-----------------------------------------------
Combobox下拉框自动筛选(如在Google中输入字符)
*--------------------------------------------
By:js_szy
注:未测试
在列表框combo 的 keypress中加如下代码:
If nkeycode>0
If nkeycode=127 &&退格
If Asc(Right(Input_value,1)) <128 &&删除非汉字
Input_value=Left(Input_value,Len(Input_value)-1)
Else &&删除汉字
Input_value=Left(Input_value,Len(Input_value)-2)
Endif
Else
If nkeycode <>160 &&按的不是Alt+↓键
Input_value=Input_value+Chr(nkeycode) &&保存输入内容
Endif
Endif
Sele 表名
Set Filt To Alltrim(Input_value) $ 字段名称
Count To num
If num=0 Then
Set Filt To
Input_value=''
This.Value=''
Endif
Thisform.Combo.Requery
Keyboard '{F4}'
Endif