ALGO NUEVO EN UN COMBO
QUE TAL
MI DUDA ES COMO PODER HACER QUE CUANDO ESCRIBA EN UN COMBO AUTOMATICAMENTE VAYA MOSTRANDO DE SU CONTENIDO LO QUE COINCIDA HASTA EL MOMENTO CON EL CRITERIO ESCRITO
MI DUDA ES COMO PODER HACER QUE CUANDO ESCRIBA EN UN COMBO AUTOMATICAMENTE VAYA MOSTRANDO DE SU CONTENIDO LO QUE COINCIDA HASTA EL MOMENTO CON EL CRITERIO ESCRITO
Puedes utilizar un TextBox y un List en conjunto:
En el evento GotFocus del textbox:
STORE SPACE(40) TO VENBUS &&variable
xenter=.f. &&variable que maneja el lastkey()
En el evento KeyPress:
IF LASTKEY()=13
xenter=.T.
wven=vendedor.ncodigo
vend=vendedor.codigo
store space(40) to venbus
WITH THISFORM
.text6.REFRESH
.container1.text5.REFRESH
.container1.text5.VISIBLE=.T.
.container1.text5.tabstop=.f.
.container1.text8.VISIBLE=.F.
.container1.label3.VISIBLE=.T.
.container1.list1.VISIBLE=.F.
ENDWITH
ELSE
THISFORM.container1.list1.VISIBLE=.T.
xenter=.F.
ENDIF
En el evento InteractiveChangeL
LOCAL nindex
FOR nindex=1 TO THISFORM.CONTAINER1.list1.LISTCOUNT
IF SUBSTR(UPPER(THISFORM.CONTAINER1.list1.LISTITEM(nindex)),1,LEN(UPPER(ALLTRIM(THIS.VALUE))))=UPPER(ALLTRIM(THIS.VALUE))
THISFORM.CONTAINER1.list1.LISTINDEX=nindex
EXIT
ENDIF
ENDFOR
THISFORM.CONTAINER1.list1.REFRESH
Y en el evento LostFocus:
WITH THISFORM
.container1.text9.REFRESH
.container1.text9.VISIBLE=.T.
.container1.text9.SETFOCUS
ENDWITH
El List tiene que estar asociado a una tabla y el Rowsource poner el nombre de la tabla o cursor.
Espero te ayude.
Raul
En el evento GotFocus del textbox:
STORE SPACE(40) TO VENBUS &&variable
xenter=.f. &&variable que maneja el lastkey()
En el evento KeyPress:
IF LASTKEY()=13
xenter=.T.
wven=vendedor.ncodigo
vend=vendedor.codigo
store space(40) to venbus
WITH THISFORM
.text6.REFRESH
.container1.text5.REFRESH
.container1.text5.VISIBLE=.T.
.container1.text5.tabstop=.f.
.container1.text8.VISIBLE=.F.
.container1.label3.VISIBLE=.T.
.container1.list1.VISIBLE=.F.
ENDWITH
ELSE
THISFORM.container1.list1.VISIBLE=.T.
xenter=.F.
ENDIF
En el evento InteractiveChangeL
LOCAL nindex
FOR nindex=1 TO THISFORM.CONTAINER1.list1.LISTCOUNT
IF SUBSTR(UPPER(THISFORM.CONTAINER1.list1.LISTITEM(nindex)),1,LEN(UPPER(ALLTRIM(THIS.VALUE))))=UPPER(ALLTRIM(THIS.VALUE))
THISFORM.CONTAINER1.list1.LISTINDEX=nindex
EXIT
ENDIF
ENDFOR
THISFORM.CONTAINER1.list1.REFRESH
Y en el evento LostFocus:
WITH THISFORM
.container1.text9.REFRESH
.container1.text9.VISIBLE=.T.
.container1.text9.SETFOCUS
ENDWITH
El List tiene que estar asociado a una tabla y el Rowsource poner el nombre de la tabla o cursor.
Espero te ayude.
Raul
