Actualizar GRID Vfp9 - SQL Server 2019

217 views
Skip to first unread message

integral

unread,
Jun 15, 2026, 11:37:53 AM (13 days ago) Jun 15
to Comunidad de Visual Foxpro en Español
Que tal amigos del Foro:

Muy Buenos Días

En un proyecto creado en VFP9 enlazado a SQL Server 2022 no logro actualizar un GRID cuando se actualizan algunos campos del mismo GRID .

Tengo un Formulario Principal que contiene un GRID y dentro un botón de comando que llama a un Formulario Secundario donde se modifican los items y/o datos del GRID. 

No consigo visualizar los cambios realizados al grabar y cerrar el formulario Secundario.

Al quedar el Formulario Principal el GRID No muestra los nuevos datos modificados...

Alguna idea o sugerencia...

Agradezco sus comentarios.
  
Form: Principal
FORM_PRINCIPAL.jpg

Form : Secundario 
FORM_SECUNDARIO.jpg

Saludos,

Integral

Aarón Delgado

unread,
Jun 15, 2026, 11:58:21 AM (13 days ago) Jun 15
to publice...@googlegroups.com
Cuando guardas en SQL Server, mediante INSERT INTO o UPDATE, luego tienes que recuperar todos los registros de tu tabla o tablas mediante un cursor, esté cursor va enlazado a tu grid, donde se refrescará.

Saludos cordiales;

DELGADO JAIMES, Roberto Aarón
Fijo: 013969545 /  Movistar: 988316319



--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/59acc154-9385-4978-b802-3888a7bab33an%40googlegroups.com.

Viktor

unread,
Jun 15, 2026, 12:22:41 PM (13 days ago) Jun 15
to publice...@googlegroups.com
En la Propiedad  AfterRowColChange tendrias que actualizar los datos de la consulta y mostrar el form modal..
en mi caso creo un metodo donde ejecuto la consulta que se refresca en cada cambio de fila.. 

Martin Inga

unread,
Jun 15, 2026, 12:23:56 PM (13 days ago) Jun 15
to publice...@googlegroups.com

Estimado buenos días.

Debes recuperar los registros nuevamente de base SQL, luego te ubicas en el registro que modificaste y listo se verán actualizados.

 

Saludos,

MI

 

From: publice...@googlegroups.com <publice...@googlegroups.com> On Behalf Of integral
Sent: lunes, 15 de junio de 2026 10:38
To: Comunidad de Visual Foxpro en Español <publice...@googlegroups.com>
Subject: [vfp] Actualizar GRID Vfp9 - SQL Server 2019

 

Que tal amigos del Foro:

 

Muy Buenos Días

 

En un proyecto creado en VFP9 enlazado a SQL Server 2022 no logro actualizar un GRID cuando se actualizan algunos campos del mismo GRID .

 

Tengo un Formulario Principal que contiene un GRID y dentro un botón de comando que llama a un Formulario Secundario donde se modifican los items y/o datos del GRID. 

 

No consigo visualizar los cambios realizados al grabar y cerrar el formulario Secundario.

 

Al quedar el Formulario Principal el GRID No muestra los nuevos datos modificados...

 

Alguna idea o sugerencia...

 

Agradezco sus comentarios.

  

Form: Principal

 

Form : Secundario 

 

Saludos,

 

Integral

RS “Ricardo”

unread,
Jun 15, 2026, 12:36:05 PM (13 days ago) Jun 15
to Comunidad de Visual Foxpro en Español
Como ya te lo explicaron los Colegas que respondieron DEBES si o si volver a Consultar la tabla y  actualizar el cursor asociado al grid

Viktor

unread,
Jun 15, 2026, 12:40:15 PM (13 days ago) Jun 15
to publice...@googlegroups.com
Crea un metodo  de consulta a tus  datos y ponlo en la propiedad  AfterRowColChange...!!

Zarlu

unread,
Jun 15, 2026, 1:59:41 PM (13 days ago) Jun 15
to Comunidad de Visual Foxpro en Español
Buenas tardes Integral!

Cómo respuesta general te diría que por cada cambio debes actualizar el grid/cursor que cargaste al iniciar en el formulario principal.

Pero si ese cursor es editable, y confirmas la actualización en la tabla, con un refresh debería de bastar.
Si tu cursor es editable con buffering y no se actualiza la tabla deberás hacer un REVERT a tu cursor.

Suerte
zarlu
Chetumal, Quintana Roo, México

integral

unread,
Jun 22, 2026, 3:46:35 PM (6 days ago) Jun 22
to Comunidad de Visual Foxpro en Español
Que tal Amigos

Muy Buenas Tardes

Estoy aplicando el siguiente código como solución  para Actualizar un GRID en el formulario Principal desde el formulario Secundario.

Pero me manda un error. Si ignoro el error me muestra el GRID Actualizado del Formulario Principal.   (Ver imagen adjunta del error) 

FORM_PRESTAMOS  ( Formulario Principal)
*********************
                                         
DO FORM "\.FORMS\FRM_CUOTAS.SCX" NAME Form_Cuotas WITH cCod_Dcto, cId_Dcto, cTip_Nomb, cTip_Apell, cTot_Cuota LINKED
Form_Cuotas.oFormPadre = THISFORM  

Método : ActualizarGrilla

LOCAL lcCursorActual

*- Guardamos el Cursor Actual que alimenta el GRID
lcCursorActual = Thisform.Grid_Cuotas.RecordSource

*- Refrescar el GRID del Padre usando la Referencia Guardada
Thisform.oCaller.Grid_Cuotas.Refresh()

*- Refrescamos el GRID y el Formulario
Thisform.Grid_Cuotas.Refresh()

Thisform.Refresh()


FORM_CUOTAS    ( Formulario Secundario)   
****************
PARAMETERS cCod_Dcto, cId_Dcto, cTip_Nomb, CTip_Apel, cTot_Cuota, cThisform
Thisform.oThisform = cThisform

CmdGrabar          Click
Thisform.oThisform.Grid_Cuotas.Refresh()

DESTROY
Thisform.ActualizarGrilla()

Agradezco sus comentarios y sugerencias.

Saludos,

Integral


ERROR_ACTUAL.jpg

Zarlu

unread,
Jun 22, 2026, 4:43:41 PM (6 days ago) Jun 22
to Comunidad de Visual Foxpro en Español
Buenas tardes Integral!

Ayudaría saber que  parámetros pasas al llamar al segundo formulario. Específicamente que recibe  "cThisForm"
Si a ese parámetro te refieres con esta línea:  Thisform.oThisform.Grid_Cuotas.Refresh() entonces hay un error en el nombre.
Pero incluso al corregirlo no creo funcione. Si cThisform es el formulario principal como objeto entonces no es un control de THISFORM es un objeto y quizá 
debes invocarlo así: cThisform.Grid_Cuotas.Refresh()

Adicionalmente te comento sobre estás líneas:
Thisform.oCaller.Grid_Cuotas.Refresh()
Thisform.Grid_Cuotas.Refresh()
Thisform.Refresh()
A menos que tengas código en cada uno de los refresh() con Thisform.Refresh es suficiente.

Hay formas más sencillas y legibles de hacer referencia a otros formularios. Mira:

*lanzar primer formulario
PUBLIC clientes_form As Form
DO FORM clientes_form

*lanzar 2do formulario desde primer formulario
Do Form segundo_form

Y entonces desde el segundo formulario se puede hacer referencia a sus métodos y/o controles. Por ejemplo:
clientes_form.refresh()

Suerte
zarlu
Chetumal, Quintana Roo, México

integral

unread,
Jun 24, 2026, 12:00:36 PM (4 days ago) Jun 24
to Comunidad de Visual Foxpro en Español
Que tal amigo Zarlu

Muy Buenos Días 

Aquí te muestro el código que estoy utilizado...

FORM "A"

DO FORM ".\FORMS\FRM_CUOTAS.SCX" NAME Form_Cuotas WITH cCod_Dcto, cId_Dcto, cTip_Nomb, cTip_Apel, cTot_Cuota, THISFORM

*-- En el metodo ActualizarGrilla del Formulario Principal

WAIT WINDOW "Actualizando el GRID..." NOWAIT

LOCAL lcCursorActual

*- Guardamos el Cursor Actual que alimenta al Grid

lcCursorActual = Thisform.Grid_Cuotas.RecordSource

* - Refrescar el Grid del Padre usando la referencia Guardada

Thisform.oFormPadre.Grid_Cuotas.Refresh()                           && Marca ERROR la propiedad creada en el formulario Secundario No Existe

*- Refrescamos el GRID y el Formulario

Thisform.Grid_Cuotas.Refresh()

Thisform.Refresh()


FORM "B"

PARAMETERS cCod_Dcto, cId_Dcto, cTip_Nomb, cTip_Apel, cTot_Cuota, toFormPadre

* Creamos una propiedad en el hijo que retenga al padre
THISFORM.AddProperty("oFormPadre")
THISFORM.oFormPadre = toFormPadre


IF VARTYPE(THISFORM.oPadre) = "O"
   THISFORM.oFormPadre.ActualizarGril
la()
ENDIF

Agradezco tus comentarios y sugerencias.

Saludos,

Integral

Zarlu

unread,
Jun 24, 2026, 2:22:43 PM (4 days ago) Jun 24
to Comunidad de Visual Foxpro en Español
Buenos días Integral!

Estás invocando en el form padre una propiedad que creaste en el form hijo. Por eso no la encuentra.

Quizá si la creas en el _Screen...
_Screen.AddProperty("oFormPadre")
_Screen.oFormPadre = toFormPadre

Suerte
zarlu
Chetumal, Quintana Roo, México


integral

unread,
9:11 PM (2 hours ago) 9:11 PM
to Comunidad de Visual Foxpro en Español
Que tal amigos del Foro

Buenas Noches

Pude lograr actualizar los ítems de un GRID y se reflejen los cambios realizados.

Aqui les dejo el link que me dio la solución exacta.

https://www.forosdelweb.com/f14/actualizar-grid-foxpro-293714/

Hasta la proxima

Saludos,

Integral
Reply all
Reply to author
Forward
0 new messages