Problemas con grid y text box

Buen día:
fijese que tengo un problema con el grid =(.
En mi formulario uso 2 tablas desde data enviroment( llamémosle "tabla1" y "tabla2".
El detalle esta que realizo una búsqueda desde el método keypress del textbox llamado :"text1"
SELECT tabla1.nombre FROM tabla1 WHERE thisform.grid1.RecordSource="xx"
THISFORM.GRID1.COLUMN1.Width=150
thisform.Refresh()
aqui todo sale sin ningun problema.el detalle viene a continuacíon:
-Al visualizar en el grid el registro que necesito quiero que el valor de tabla1. Nombre se envíe al "text1" pero siempre me envía el mismo valor.
$$$
datos del grid:
en columncount=1
allowautocolumnfit=0
allowcellselection=false
highlighstyle=2
readonly=true
recordmark=true
$$$$$
Por favor necesito mucho tu ayuda. Tienes alguna sugerencia mejor. Y por favor dime a que se debe que solo me envíe el mismo registro al "text1"
Agradezco su atención y mucho más su ayuda la cual le solicito porque veo que es uno de los mejores en foxpro. =)

1 Respuesta

Respuesta
1
Inicialmente te cuento que analizando esta consulta 'SELECT tabla1. nombre FROM tabla1 WHERE thisform. Grid1. RecordSource="xx"' la observación principal a hacer es que el where tiene una condición que no parece muy óptima, básicamente la consulta va a estar vacía mientras no exista un cursor o tabla llamado XX que esté asignado a la grilla como fuente de registros (recordsource). Pero si la consulta te funciona bien no habría razón para modificarla.
Para mí la mejor forma de lograr el correcto funcionamiento de una grilla con contenido dinámico sería:
* en el init del form utiliza un código como este
thisform.grid1.recordsource = null
SELECT tabla1.nombre FROM tabla1 INTO CURSOR cur_grid
thisform.grid1.recordsource = "cur_grid"
thisform.grid1.column1.controlsource = "cur_grid.nombre"
thisform.text1.controlsource = "cur_grid.nombre"
select cur_grid
Go top
Thisform. Refresh()
* hasta la grilla va a mostrar el contenido de tabla1 dentro del cursor cur_grid y actualizará la grilla y el text dinámicamente. Si necesitas aumentar la velocidad de refresco, dentro de la grilla en el método afterrowcolchange() utiliza un codigo como este:
thisform.text1.refresh()
Con un código como este optimizas la velocidad y el funcionamiento gracias a que al no usar el dataenviroment evitas que se realice la consulta cada vez que se refresque la pantalla.
Las demás propiedades de la grilla que utilizas son perfectamente correctas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas