Autor Tema: ¿Cómo muevo la posición de un cursor en una tabla desde un grid?  (Leído 5420 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Tengo un grid que depende de una tabla, pero quiero que al posicionarme en el segundo registro o fila por ejemplo, también en la tabla el cursor se posicione en el segundo registro y, si  cambio al cuarto registro, también en la tabla se cambie. ¿Cómo puedo hacer eso?

Desconectado stoke

  • Sv Member
  • ***
  • Mensajes: 342
Re: ¿Cómo muevo la posición de un cursor en una tabla desde un grid?
« Respuesta #1 : enero 29, 2009, 04:03:42 pm »
No entiendo muy bien lo que queres hacer si tuvieras 2 grids podrias hacer algo como esto

Código: [Seleccionar]
thisform.grd2.ActivateCell(thisform.grd1.ActiveRow,thisform.grd1.ActiveColumn)
thisform.Refresh

Me imagino que la tabla de la estas hablando es del Data Environment, si es asi basta con que cambies la propiedad RecordSourceType del grid

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¿Cómo muevo la posición de un cursor en una tabla desde un grid?
« Respuesta #2 : enero 29, 2009, 04:14:23 pm »
No entiendo muy bien lo que queres hacer si tuvieras 2 grids podrias hacer algo como esto

Código: [Seleccionar]
thisform.grd2.ActivateCell(thisform.grd1.ActiveRow,thisform.grd1.ActiveColumn)
thisform.Refresh

Me imagino que la tabla de la estas hablando es del Data Environment, si es asi basta con que cambies la propiedad RecordSourceType del grid

Osea, es que tengo una tabla que me es mostrada completa en un grid1 y la cual puede ser modificada desde el grid. En la tabla hay un campo para el código de empleado y necesito extraer el código del empleado que pertenece al registro sobre el que yo haga click, por ejemplo, para mostrarlo en un messagebox. Intenté haciendo algo como ésto, poniéndolo en el valid de un text1 de una columna:

emp_=thisform.grid1.column(1).text1.value
messagebox(emp_)

Cada vez que se ejecuta el valid de los textboxes sólo me muestra el código del primer empleado en el primer registro, sin importar que yo esté en otro registro.

Nota: No lo quiero extraer para mostrarlo en un messabebox nada más, si no que lo necesito para hacer una comparación con otro dato del formulario, pero basta con saber que al menos haga referencia al valor que necesito y, para comprobarlo, utilizo los messageboxes
« Última Modificación: enero 29, 2009, 04:17:53 pm por gilanrodas »

Desconectado stoke

  • Sv Member
  • ***
  • Mensajes: 342
Re: ¿Cómo muevo la posición de un cursor en una tabla desde un grid?
« Respuesta #3 : enero 29, 2009, 04:25:45 pm »
Código: [Seleccionar]
MESSAGEBOX(tabla.campo)

 :thumbsup:

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¿Cómo muevo la posición de un cursor en una tabla desde un grid?
« Respuesta #4 : enero 29, 2009, 04:55:49 pm »
Código: [Seleccionar]
MESSAGEBOX(tabla.campo)

 :thumbsup:

Fijate que me sigue dando el mismo problema. Hoy sólo me devuelve el código de empleado del último registro, aunque haya estado posicionado o se ejecute el valid del segundo registro o del primero. Lo que quiero es que si se ejecuta el valid de un textbox correspondiente al primer registro, me devuelva el código del primero, si se ejecuta el del segundo registro, me devuelva el código del segundo y así sucesivamente, pero sólo me está dando el último. Parece ser que cuando escribo tabla.campo se va siempre hasta el final de la tabla.

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¿Cómo muevo la posición de un cursor en una tabla desde un grid?
« Respuesta #5 : enero 29, 2009, 05:20:19 pm »
Hey, muchas gracias por la ayuda. Ya lo pude resolver. El problema es que, a pesar que al moverme por el grid también se mueve por la tabla, cuando hago referencia o "llamo" a la tabla nuevamente como que se pierde ese número del registro, así que lo que hice fue almacenar el número del registro en una variable antes de hacer referencia a la tabla, para después irme al número de registro almacenado en la variable que sería el mismo RECNO(), así:

rec_=RECNO()
SELECT planilla
GO rec_
emp_=cod_emp