Cursores, grid y tablas

Hola!
Disculpa que te moleste, pero soy nueva en foxpro quisiera que me ayudaras a resolver un lio que tengo, el cual consiste en...
1. Tengo 2 cursores que mandan sus datos a 2 tablas.
2.Ambos cursores están indexados al igual que las tablas, lo que tengo que hacer es que cuando yo borre un dato de los cursores esto se vea reflejado en las tablas físicas.
3. Otra duda es que tengo 2 grid donde cada uno me muetsra la información de mis cursores, pero quiero que al dar clic en un botón retroceder o avanzar se mueva mi segundo grid al mismo tiempo es decir que si tengo 5 registros y me muevo del 3 al 4 en el primer grid esto también se vea reflejado en mi segundo grid mediante el indice que cree que el mismo movimiento de avanzar o retroceder tenga efectos en los dos grid.
Agradecería muchísimo tu ayuda de verdad ojala pudieras contestarme
Un saludo y espero Estés bien

1 Respuesta

Respuesta
1
Respecto a tus consultas:
1. Tengo 2 cursores que mandan sus datos a 2 tablas.
2.Ambos cursores están indexados al igual que las tablas, lo que tengo que hacer es que cuando yo borre un dato de los cursores esto se vea reflejado en las tablas físicas.
Respecto a esta primera consulta la forma más segura y sencilla sería que cuando armás los cursores con los datos desde la tabla agregues el número de registro en un campo completandolo con la funcion RECNO() en el SELECT o en el SCAN, de esta manera al confirmar la grabación de datos lo que harías es filtrar por registros borrados, osea DELETED(), y buscarlos en la tabla principal por el nro de Registro con un LOCATE FOR RECNO()=cursor.RegNro
3. Otra duda es que tengo 2 grid donde cada uno me muestra la información de mis cursores, pero quiero que al dar clic en un botón retroceder o avanzar se mueva mi segundo grid al mismo tiempo es decir que si tengo 5 registros y me muevo del 3 al 4 en el primer grid esto también se vea reflejado en mi segundo grid mediante el indice que cree que el mismo movimiento de avanzar o retroceder tenga efectos en los dos grid.
Para solucionar esto sencillamente en el botón siguiente podes usar este código:
SELECT cursor1
if !eof()
      SKIP 1
Endif
SELECT cursor2
if !eof()
      SKIP 1
Endif
Thisform. Grilla1. Refresh()
Thisform. Grilla2. Refresh()
De esa manera moves los registros de igual manera en ambas tablas y grillas, para el botón anterior lo harías con un if ! Bof() SKIP -1, el botón primero con un GO TOP y el botón último con un GO BOTTOM.
Espero te sirva, cualquier cosa podes volver a consultarme.
No se si estás familiarizada con el término pero podes usar Buffering para trabajar sobre las tablas reales y confirmar o rechazar cambios.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas