Buscador

Saludos.
Necesito desarrollar un buscador de tal manera que la presionar una tecla en una caja de texto me busque todos los productos que cumpla con la descripción. La descripción es ds en una tabla producto,
El problema que se me presenta al utilizar el keypress es que cuando presiona o borran un carácter con la tecla suprimir no hallo como capturar lo que resulta después de borrar el carácter e probado forzando el valid de la caja de texto pero por ejemplo si tenia el valor RON y borro la O y el keypress mando ejecutar el valid de la caja de texto resulta que para mi sorpresa el valor en la caja de texto es el mismo sin borrar la letra es decir no mecaptura el valo con el cambio. Es decir el valor es RON y no RN
El código
LPARAMETERS nKeyCode, nShiftAltCtrl
N = nkeycode
A = CHR(n)
* pregusnra si numerico y si es alpha
IF isalpha(a) OR ISDIGIT(a)
buscar = buscar + UPPER(a)
FOR wi = thisform.list1.ListCount TO 1 STEP -1
thisform.list1.RemoveItem(wi)
thisform.list2.RemoveItem(wi)
thisform.list3.RemoveItem(wi)
ENDFOR
DIMENSION wpro(1)
l = 0
SELECT ds,LN,PR INTO ARRAY wpro FROM producto
FOR wk = 1 TO ALEN(wpro,1)
filea = UPPER(wpro(wk,1))
j = OCCURS(buscar,filea)
IF j > 0
l = l + 1
thisform.list1.AddItem(wpro(wk,1),l)
LNA = STR(wpro(wk,2))
PRA = STR(wpro(wk,3))
thisform.list2.AddItem(LNA,L)
thisform.list3.AddItem(PRA,L)
ENDif
ENDFOR
ELSE
thisform.text1.valid
Endif
* biscar es una varuable global o publica
codigo del valid
buscar = thisform.text1.value

1 respuesta

Respuesta
1
Esto estaría en interactivechange del texbox y donde muestro seria list
SET EXACT OFF
Cadena=UPPER(Alltr(This.Value)) + "%"
CadSQL = "Select cod_bal,cliente,placa,fechaing,estado" + ;
" FROM cur_buscar" + ;
" WHERE UPPER(placa) LIKE '" + alltr(Cadena) + "' " + ;
" ORDER BY placa" +;
" INTO CURSOR mylist"
THISFORM.List1.Rowsource = CadSQL
THISFORM.list1.listindex=1
THIS.Setfocus
THISFORM. List1. REFRESH

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas