actualizar grid desde otro form

2,447 views
Skip to first unread message

Juan Morales

unread,
May 11, 2012, 9:52:50 AM5/11/12
to Comunidad de Visual Foxpro en Español
buenos dias a todos

como puedo hacer para que al actualizar datos en un form, esto se
actualisen automaticamente en la grilla del form desde el cual se
llama

GeoSys Diseño de Software

unread,
May 11, 2012, 10:55:35 AM5/11/12
to publice...@googlegroups.com
Desde el formulario actual (Hijo) refrescas la grid del formulario (padre) donde fue llamado, esto dando el nombre del formulario, nombre de grid y refrescar del formulario padre.

Nombreformulario.nombregrid.refresh

Cabe destacar que los cambios se notarán en la grid del formulario anterior si estás actualizando los datos de la misma tabla o el mismo cursor a los que pertenece la grid del formulario padre.

Si es así, los cambios se verán reflejados en la grid del formulario padre, o sea, del formulario que llamó.



Saludos

Anthony Contreras Peralta

Costa Rica

Juan Morales

unread,
May 11, 2012, 1:56:46 PM5/11/12
to Comunidad de Visual Foxpro en Español
Y como refresco desde el Form2 al Form1?


On 11 mayo, 09:55, GeoSys Diseño de Software <geosy...@gmail.com>
wrote:
> Desde el formulario actual (Hijo) refrescas la grid del formulario (padre)
> donde fue llamado, esto dando el nombre del formulario, nombre de grid y
> refrescar del formulario padre.
>
> Nombreformulario.nombregrid.refresh
>
> Cabe destacar que los cambios se notarán en la grid del formulario anterior
> si estás actualizando los datos de la misma tabla o el mismo cursor a los
> que pertenece la grid del formulario padre.
>
> Si es así, los cambios se verán reflejados en la grid del formulario padre,
> o sea, del formulario que llamó.
>
> *
> *
> *Saludos*
> *
> *
> *Anthony Contreras Peralta*
> *
> *
> *Costa Rica*

GeoSys Diseño de Software

unread,
May 11, 2012, 2:14:16 PM5/11/12
to publice...@googlegroups.com
De la forma en que te comenté:

En este caso  Form2 es el formulario hijo y Form1 es el formulario padre, ya que Form1 es el que llama a Form2.

Estando en el  Form2 que es el formulario hijo cuando actualizas los datos das la instrucción para actualizar la grid del Form1:

Form1.Grid1.Refresh && Actualizas la grid del formulario padre.

Suponiendo que la grid del Form1 se llame Grid1.



Saludos

Anthony Contreras Peralta

Costa Rica.

Antonio.xt

unread,
May 11, 2012, 2:16:01 PM5/11/12
to publice...@googlegroups.com

Que tal Juan, oye, cuando estas en el FORM hijo modificando datos del Grid ¿Están visibles los 2 formularios?

Si no es asi, no es necesario que refrescar el Grid del formulario padre debido a que no se ve, ademas no se si se pueda ya que este no tiene el foco, cuando cierres el formulario hijo se regresa el foco al formulario padre y ahora si lo actualizas.

Bueno, aqui tengo dudas yo, no se si se pueda modificar o actualizar un objeto (como en este caso el grid) que esta en un formulario desde otro formulario, no se si tengan que estar en un SET de formularios o no; a ver si algún colega que nos confirme.

Saludos...

Charles A. Moreno

Victor Espina

unread,
May 11, 2012, 2:24:19 PM5/11/12
to publice...@googlegroups.com
Juan, la mejor forma de lograr esto es pasar una referencia al grid en cuestion al nuevo form:

DO FORM Form2 WITH THISFORM.Grid1

En el evento Init de Form2 pones:

LPARAMETERS poGrid1
THISFORM.addProperty("oGrid1", poGrid1)

y luego, cuando quieras actualizar el grid1 desde Form2 haces:

THISFORM.oGrid1.Refresh()


Finalmente, en el evento Release de Form2 pones:

THISFORM.oGrid1 = NULL


Saludos

Victor Espina

Juan Morales

unread,
May 11, 2012, 3:02:48 PM5/11/12
to Comunidad de Visual Foxpro en Español
gracias a todas los que han respondido, la situacion es la siguiente,
tengo un form1, con una lista de personal, los datos los obtengo de
una consulta Select. aqui hay una opcion de agregar, modificar, etc.
lo estaba trabajando que al salir del form2, el form1 se cargaba
nuevamente y alli se actualizaba, pero el cliente quiere que a medida
que va ingresando los datos me muestra en la grilla del fondo, sin
embargo, esto es lo que no me sale si creo nuevamente la consulta se
borra el contenido del form1, no se de que otra forma la pueda hacer,
voy a probar con la solucion de Victor, a ver como va

Victor Espina

unread,
May 11, 2012, 3:53:48 PM5/11/12
to publice...@googlegroups.com
Si el grid1 se actualiza en base a un SELECT, entonces lo mejor es:

1. Crear un metodo en Form1 que actualize el contenido del grid; digamos refreshGrid1().

2. Al invocar a Form2, pasarle una referencia al Form1:  DO Form2 WITH THISFORM

3. En el evento Init de Form2, guardar la referencia pasada: 
    LPARAMETERS poParent
    THISFORM.addProperty("oParent",poParent)

4. Luego de incluir un nuevo empleado, invocar el metodo en el Form1:
    THISFORM.oParent.refreshGrid1()

Saludos

Victor Espina

Ruben Huare

unread,
May 12, 2012, 1:15:53 PM5/12/12
to Comunidad de Visual Foxpro en Español
Me parece que se debería hacer un requery de la consulta antes de
refrescar de ese modo tenes actualizada la consulta si estas
utilizando datos privados en los form
Reply all
Reply to author
Forward
0 new messages