FoxPro/Visual FoxPro - Ayuda.! ¿Me pueden ayudar con esta búsqueda?

   
Vista:

Ayuda.! ¿Me pueden ayudar con esta búsqueda?

Publicado por Andrea (325 intervenciones) el 24/03/2009 15:02:46
Hola a todos

Estuve buscando en los post anteriores pero no pude encontrar nada concreto.

Quiero hacer un formulario de consulta (búsqueda incremental), donde el usuario vaya ingresando las letras del nombre en un TEXTBOX y automáticamente se vaya mostrando en un LISTBOX los nombres filtrados.

Ejemplo:

TEXT1 --> [GONZA___________]

LIST1 -->

GONZALEZ JUAN
GONZALEZ PEDRO ANDRES
GONZALO EMILIA

Una vez que filtra los apellidos, presionando ENTER entrar en el LIST1 y una vez seleccionado el nombre correcto, presionar nuevamente ENTER y que devuelva el código del cliente buscado.

Muchas gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda.! ¿Me pueden ayudar con esta búsqueda?

Publicado por kong (681 intervenciones) el 24/03/2009 18:12:25
hola.
yo pondria en el interactivechange del text1 algo asi

set near on
seek alltrim(this.value)
thisform.list1.requery
set near off

en el keypress del text1

if nKeyCode=13
nodefault
thisform.list1.setfocus
endif

.............. claro que primero debe estar indexado el campo de los nombres.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda.! ¿Me pueden ayudar con esta búsqueda?

Publicado por ANDRES CORTEZ M (162 intervenciones) el 25/03/2009 04:42:19
HOLA ANDREITA

Otra forma Ejemplo

En el text1 en el metodo INTERACTIVECHANGE

- SELECT NOMBRE,DIRECCION FROM BASE;
WHERE ALLTRIM(THISFORM.TEXT1.Value) $ NOMBRE;
ORDER BY NOMBRE;
INTO CURSOR C_NOMBRE
SELECT C_NOMBRE
GO TOP
IF BOF()
THISFORM.LIST1.Visible=.F.
ELSE
THISFORM.LIST1.Visible=.T.
THISFORM.LIST1.RowSource="C_NOMBRE.NOMBRE,DIRECCION"
ENDIF

NOTA - BASE es el nombre de la tabla

En el text1 en el metodo lostfocus

THISFORM.LIST1.SetFocus

*-------------------------------

En el list1 en las propiedades

- boundcolumn= 2 && cuantos valores guradas en el list1
- columncount= 2 && cuantas columnas muestra el list1
- Datos
- rowsurcetype= 6 campo
-rowsource=(nada) && debe deja en blanco

en el keypress del list1

LPARAMETERS nKeyCode, nShiftAltCtrl
IF NKEYCODE=13
THISFORM.LIST1.BoundColumn=1 && nombre
THISFORM.TEXT1.VALUE=THISFORM.LIST1.Value
THISFORM.LIST1.BoundColumn=2 && direccion
THISFORM.TEXT2.VALUE=THISFORM.LIST1.Value

ENDIF

Nota :

THISFORM.LIST1.RowSource="C_NOMBRE.NOMBRE,DIRECCION"

aqui se esta asignado al list1 el cursor con el campo nombre y direccion yo agrege un text2 eso es solo para explicarte como sacar un segundo valor del list1
segun el valor del boundcolumn le asigna al list value la columna.asignada por el numero.

Espero te sirva

ACM
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar