• Miércoles 20 de Noviembre de 2024, 08:25

Autor Tema:  Datos de un form a otro  (Leído 5577 veces)

Neox

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Datos de un form a otro
« en: Martes 7 de Julio de 2009, 14:30 »
0
Hola, quiero pasar datos de una ventana (form secundario) creado por otro form (el principal). Es decir, si el form secundario tiene datos de por ej. nombre de persona y edad, introducidos por el usuario, al apretar un boton (de aceptar por ejemplo) contenido en el form secundario, se cierre dicho form y se pasen esos datos al form principal. ¿Cómo se hace?
Por otro lado, ¿Se pueden pasar esos datos a una tabla que pertenece al form principal? y si metemos en tiempo de ejecucion a más de 1 persona, que se vayan creando filas en la tabla del form principal con los respectivos datos.
saludos!

juan_0986

  • Miembro activo
  • **
  • Mensajes: 51
  • Nacionalidad: pe
    • Ver Perfil
Re: Datos de un form a otro
« Respuesta #1 en: Lunes 31 de Agosto de 2009, 18:56 »
0
Para pasar datos de un form a otro hay varias formas.

1) Crear una estructura y pasar los datos por alli
2) Envias como parametro el datawindow y luego igualas el dw_recibe.object.data=dw_envia.object.data
3) utiliza un rowscopy que lo encuentras en la ayuda del power

OJO para que el pto 2 y 3 funcionen ambos dw deben de tener exactamente los mismos campos, ahora si no estas usando dw, solo lo estas haciendo con controles entonces usa la estructura.

Si se puede hacer lo que necesitas de ir pasando estos datos a una tabla principal;
Puedes usar los datastore para ayudarte, alli vas almacenando los datos y cuando desees lo puedes guardar.

Te lo he explicado de una manera general por que asumo que sabes como usar estructuras y datastore, de no ser asi, hazlo saber, y se podria explicar detalladamente con ejemplos, pero seria bueno de que investigues algo por tu cuenta y lo que no tengas claro lo haces saber.

saludos

Neox

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Datos de un form a otro
« Respuesta #2 en: Lunes 31 de Agosto de 2009, 23:41 »
0
Hola Juan!!

De entrada muchas gracias por decirme la estrategia a seguir, porque en muchas ocasiones te pueden guiar por un sitio al que al final llegarías pero no de la mejor forma.

En un principio pensé en estructuras, pero claro, tengo detrás "la mosca" de crear clases, pero me gusta lo que has comentado por lo que finalmente siga lo que me has dicho.

En cuanto a si sé sobre datastore y demás, la verdad es que no estoy seguro. Te explico. He terminado Industriales y he hecho varias aplicaciones visuales con el bilder (muy simples) e incluso he llegado a programar api's, por lo que supongo que en cuanto lea un tuto o lo que sea no me sería ningun problema llegar a comprenderlo, pero si se expone aqui el funcionamiento de dichas funciones me sería de grán ayuda porque me ahorraria tiempo, (aunque en la busqueda se encuentra el saber).

De nuevo gracias, y saludos!!

juan_0986

  • Miembro activo
  • **
  • Mensajes: 51
  • Nacionalidad: pe
    • Ver Perfil
Re: Datos de un form a otro
« Respuesta #3 en: Martes 1 de Septiembre de 2009, 00:37 »
0
Ya haber vamos por partes.

1) Para pasar los datos de un form a otro:

Si los estas haciendo por datawindow:
a) en tu ventana secundaria como la llamas debes de tener un dw donde has ingresado datos,
entonces en tu buttom podrias hacer lo sgt:
dw_1.accepttext()
openwithparm(w_2,tab_1.tabpage_1.dw_1)
close(parent)

en el open de tu form principal programas lo sgt en el open:
datawindow ldw_recibe
ldw_recibe=message.powerobjectparm
dw_1.object.data=ldw_recibe.object.data

con esto ya paso los datos de un form secundario a uno principal


2) Para ir ingresando las filas, usando los datastore que son los datawindows no visibles

debes crear un objeto datawindow que haga referencia a la tabla en la que quieres guardar los datos

declaras una variable de instancia de tipo datastore
datastore ids_datos

luego en el open de tu window puedes conectar el datastore a tu transaccion
ids_datos.settransobject(sqlca)
ids_datos.dataobject='objecto datawindow que tiene los datos que vas a guardar'

luego supongo que los datos lo vas a ir ingresando en controles o en un datawindow que va a ver el usuario, entonces tendras un buttom que
hara el pase. alli puedes programar lo sgt:

long ll_row
ll_row=ids_datos.insertrow(0)
ids_datos.setitem(ll_row,'columna_del_campo',valor1)
despues blanqueas el control o el datawindow donde esta ingresando el usuario los valores

La columna del campo es la columna contenida en el 'objecto datawindow que tiene los datos que vas a guardar'
El valor1 va a ser el valor que el usuario ha ingresado y lo tienes en algun control o en dw, dependiendo de como hayas creado el window


Una vez que ya tienes acumulado los datos puedes guardarlo o tb podrias guardarlo cada vez que agregues un registro, eso ya depende de ti
if ids_datos.update()=-1 then
rollback;
messagebox('','ocurrio un error')
return
end if

commit;

espero que haya quedado claro la breve explicación

Neox

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Datos de un form a otro
« Respuesta #4 en: Martes 1 de Septiembre de 2009, 10:37 »
0
Me ha quedado muy claro, era justo lo que necesitaba. Muchas gracias!