Pasar datos de una ventana a otra usando objeto estructura


Pasar datos de una ventana a otra, se puede realizar de muchas maneras, una de ellas es usando estructura de datos.

Para el ejemplo pasaremos datos de un trabajador de la Ventana 1 a la Ventana 2.

Para ello creamos previamente la estructura a utilizar.

La estructura a crear es st_trabajador, el cual tendrá código, nombre y sueldo mensuales recibidos por el trabajador, el cual se almacenara en el array sueldos_anno.

Objeto Estructura

Ventana 1

Creamos la Ventana 1 y agregamos los siguientes objetos:

  • sle_codigo
  • sle_nombre
  • sle_enero
  • sle_febrero
  • sle_marzo
  • cb_pasar_datos
      El diseño quedaría de la siguiente manera:

Ventana 1
En el evento clicked del botón cb_pasar_datos ingresamos el siguiente código:

//Instanciamos estructura st_trabajador
st_trabajador st_trabajador_parametro
//cargamos los datos para las variables de la estructura
st_trabajador_parametro.codigo=sle_codigo.text
st_trabajador_parametro.nombre=sle_nombre.text
//Carga variable array
st_trabajador_parametro.sueldos_anno[1]=dec(sle_enero.text)//Enero
st_trabajador_parametro.sueldos_anno[2]=dec(sle_febrero.text)//Febrero
st_trabajador_parametro.sueldos_anno[3]=dec(sle_marzo.text)//Marzo
//Abrimos Ventana 2 enviando como parametro la estructura
OpenWithParm(w_ventana2,st_trabajador_parametro)


Evento Clicked - cb_pasar_datos


Ventana 2 

Creamos la Ventana 2  y agregamos los siguientes objetos:

  • sle_codigo
  • sle_nombre
  • sle_suma_sueldos 
Ventana 2

En el evento open de la Ventana 2 ingresamos el siguiente código:

//Instanciamos estructura st_trabajador
st_trabajador lst_trabajador_parametro
/*message.powerobjectparm => almacena la referencia del objeto pasado como parametro.
Usamos message.powerobjectparm porque el parametro pasado es un objeto.*/
//Cargamos el paramatro a la instancia lst_trabajador_parametro
lst_trabajador_parametro=message.powerobjectparm
//Obtenemos los datos
sle_codigo.text=lst_trabajador_parametro.codigo
sle_nombre.text=lst_trabajador_parametro.nombre
//Obtenemos los datos del array
sle_suma_sueldos.text=string lst_trabajador_parametro.sueldos_anno[1] & + lst_trabajador_parametro.sueldos_anno[2] & + lst_trabajador_parametro.sueldos_anno[3],"###,##0.00")


Evento open Ventana 2


Objeto Application 

En el evento open del objeto application ingresamos el siguiente código

open(w_ventana1)

Ejecución


 Ejecutamos la aplicación.

Ventana 1


Ventana 2




4 comentarios:

Unknown dijo...

Gracias buen aporte!

Lisandro Duran dijo...

Gracias!

Unknown dijo...

Se pueden mandar 2 estructuras a una misma ventana?

Unknown dijo...

Gracias

Publicar un comentario