FoxPro/Visual FoxPro - AYUDA: GRID Y TEXTBOX !!!

 
Vista:

AYUDA: GRID Y TEXTBOX !!!

Publicado por Javier (70 intervenciones) el 22/09/2000 00:00:00
HOLA A TODOS:
AYUDA: GRID Y TEXTBOX !!!
Tengo el siguiente problema y necesito ayuda. Estoy en el evento InteractiveChange de un TextBox en un formulario que tambien tiene una Grid, la idea es la de ingresar un texto en el TextBox y buscarlo en la Tabla asociada al Grid. Es decir que a medida que ingreso el texto
la busqueda se va realizando en la tabla, si ingreso A la busqueda se detendrá en el primer registro cuyo campo Apellido empiece con A, si
pulso L, continuará buscando un apellido que comience con AL y asi sucesivamente.
El código que implementé funciona bien pero necesito que la fila (o la celda) del registro encontrado, quede destacada en el Grid, pues
este solo se actualiza y luego puedo continuar ingresando texto en el TextBox.

Este es el código del evento InteractiveChange el textBox:

LOCAL cBusca
cBusca = THISFORM.Text1.Value
cBusca = RTrim(cBusca)

LOCATE FOR cBusca=Left(Apellido,Len(cBusca))

THISFORM.Grid1.Refresh
//
Existirá alguna forma mejor?
Desde ya muchas gracias a todos!!!
Javier
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: GRID Y TEXTBOX !!!

Publicado por Marga del Pino (10 intervenciones) el 10/11/2000 00:00:00
Javier:

en el sitio http://pagina.de/vfoxpro en el enlace Servicios y luego en Trucos viene un truco para resolver tu pregunta:

¿Como hacer una busqueda incremental con un TextBox en un Grid?
R: *----------------------------------------------------------------------
* Para hacer una BUSQUEDA INCREMENTAL en un Formulario, debemos poner un
* TextBox (Text1) y una Grilla (Grid1).
* En el Entorno de datos insertaremos la tabla (MiTabla)
* En el método InteractiveChange del TexBox
* escribir el siguiente código:
*----------------------------------------------------------------------
*--- InteractiveChange ---
local lc, lnRecno
Select MiTabla
lc = allt(This.Value)
lnRecno = recno()
if MiTabla.Nombre >= lc
if not bof()
skip -1
endif
if MiTabla.Nombre < 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 MiTabla.Nombre=lc while MiTabla.Nombre <= lc nooptimize
endif
else
locate rest for MiTabla.Nombre=lc while MiTabla.Nombre <= lc nooptimize
endif

if lnRecno # recno()
ThisForm.Grid1.SetFocus && el nombre del TextBox
ThisForm.Text1.SetFocus && el nombre del Grid
endif
return
*--- END InteractiveChange ---

*----------------------------------------------------------------------
* NOTA: SE DEBE TENER LAS SIGUIENTES
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