Consulta - Busqueda incremental - Visual Fox
Hola,
Estoy utilizando el siguiente código para realizar una búsqueda en un grid. El código lo tengo dentro de un textbox en la propiedad "interactivechange".
AL ingresar un nombre en el "textbox" me marca en el grid el material encontrado. El problema es que: La búsqueda funciona correctamente (aparentemente), o sea, se posiciona sobre la linea del grid que estoy buscando. Luego (al hacer click) sobre cualquier parte del formulario, se me corre un item hacia arriba del que estaba seleccionado.
LOCAL lc, lnRecno
SELECT materiales
SET ORDER TO MAT_nombr && MAT_NOMBR
SET NEAR ON
lc = ALLT(THIS.VALUE)
lnRecno = RECNO()
IF materiales.mat_nombr >= lc
IF NOT BOF()
SKIP -1
ENDIF
IF materiales.mat_nombr < lc && debe quedar donde estaba
IF lnRecno <= RECC()
GO RECNO()
ELSE
GO BOTT
ENDIF
RETURN
ENDIF
IF NOT EMPTY(ORDER()) && busqueda con indice
SEEK lc
ELSE
GO TOP
LOCATE REST FOR materiales.mat_nombr=lc WHILE materiales.mat_nombr <= lc NOOPTIMIZE
ENDIF
ELSE
LOCATE REST FOR materiales.mat_nombr=lc WHILE materiales.mat_nombr <= lc NOOPTIMIZE
ENDIF
IF lnRecno # RECNO()
THISFORM.grdmateriales.SETFOCUS && el nombre del TextBox
THISFORM.text_buscar.SETFOCUS && el nombre del Grid
ENDIF
RETURN
Estoy utilizando el siguiente código para realizar una búsqueda en un grid. El código lo tengo dentro de un textbox en la propiedad "interactivechange".
AL ingresar un nombre en el "textbox" me marca en el grid el material encontrado. El problema es que: La búsqueda funciona correctamente (aparentemente), o sea, se posiciona sobre la linea del grid que estoy buscando. Luego (al hacer click) sobre cualquier parte del formulario, se me corre un item hacia arriba del que estaba seleccionado.
LOCAL lc, lnRecno
SELECT materiales
SET ORDER TO MAT_nombr && MAT_NOMBR
SET NEAR ON
lc = ALLT(THIS.VALUE)
lnRecno = RECNO()
IF materiales.mat_nombr >= lc
IF NOT BOF()
SKIP -1
ENDIF
IF materiales.mat_nombr < lc && debe quedar donde estaba
IF lnRecno <= RECC()
GO RECNO()
ELSE
GO BOTT
ENDIF
RETURN
ENDIF
IF NOT EMPTY(ORDER()) && busqueda con indice
SEEK lc
ELSE
GO TOP
LOCATE REST FOR materiales.mat_nombr=lc WHILE materiales.mat_nombr <= lc NOOPTIMIZE
ENDIF
ELSE
LOCATE REST FOR materiales.mat_nombr=lc WHILE materiales.mat_nombr <= lc NOOPTIMIZE
ENDIF
IF lnRecno # RECNO()
THISFORM.grdmateriales.SETFOCUS && el nombre del TextBox
THISFORM.text_buscar.SETFOCUS && el nombre del Grid
ENDIF
RETURN
Respuesta de keystone CITI
1