FoxPro/Visual FoxPro - Famosa búsqueda en Combo

   
Vista:

Famosa búsqueda en Combo

Publicado por Eduardo Daniel (123 intervenciones) el 29/12/2008 20:51:31
Hola amigos, tengo varios combos, donde hago la busqueda de nombres

En el KeyPress tengo

IF BETWEEN(NKEYCODE, 32, 112)
FOR X=1 TO THIS.ListCount
IF UPPER(SUBS(THIS.LIST(X), 1, THIS.SelStart+1))=;
UPPER(SUBSTR(THIS.Text, 1, THIS.SelStart)+CHR(NKEYCODE))
NCURPOS=THIS.SelStart+1
THIS.Value=THIS.List(X)
THIS.SelStart=NCURPOS
THISSELLENGTH=LEN(ALLT(THIS.List(X))) - NCURPOS
NODEFAULT
EXIT
ENDIF
NEXT X
ENDIF

y en el GotFocus

KEYBOARD "{F4}"

Y he notado lo siguiente, cuando hay un nombre donde las primeras letras son únicas, en el combo puedo escribir todo, pero si hay repetidas, solo escribe una o dos letras y se traba
Para ser mas explicito, supongamos que la lista es la siguiente

PAGANI OSCAR
PEREYRA RAUL
PEREYRA TEODORO
PEREZ ALDO

Si busco PAGANI, voy escribiendo y en el combo me permite escribir todo, ahora si busco PEREZ, esceibo la P y la E y se traba, no me deja escribir mas y queda posicionado en Pereyra Raul
Espero haberme explciado bien y desde ya les agradezco la ayuda

Eduardo
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:Famosa búsqueda en Combo

Publicado por DOUGLAS (297 intervenciones) el 02/01/2009 05:55:45
pon esto en el combo, evento keypress event
esta es una de las tantas y mejores forma ya que acepta super cantidades de registros y no se pega como tu metod anterior se quier ayuda avisame

Thisform.LockScreen = .T.
Set Exact Off
Select TARJETA
If Seek(Alltrim(This.DisplayValue)+Upper(Chr(nKeyCode)))
Select TARJETA
THISFORM.GRID1.COlumn3.TEXT1.SelectedForeColor = 0
THISFORM.PVEnta.Value = (TARJETA.PUNI*TASA.VALOR)
Thisform.GRID1.Refresh()
Wait Clear
Else
If !Empty(Upper(Chr(nKeyCode))) And nKeyCode<>32
Wait Window " Error al digitar no hay coincidencias... VERIFIQUE! " At 10,65 Nowait
Endif
Endif
Thisform.LockScreen = .F.

tarjeta es mi tabla la cual tiene que estar indexada por la columna que estoy buscando, saludes
espero le sirva,

Douglas
from Nicaragua
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