Power Builder - Envio datos a otro dw de otra ventana

 
Vista:
sin imagen de perfil

Envio datos a otro dw de otra ventana

Publicado por Shirus (144 intervenciones) el 21/02/2011 18:42:31
Buen dìa, y gracias por su ayuda, tengo un dw en un formulario y otro en otro formulario, como puedo hacer para los datos de uno pase a otro, intente con una estructura, pero este pasa de registro en registro, o derrepente tiene la opcion de pasar multiples registro, haber si alguien me puede ayudar.

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 37
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Envio datos a otro dw de otra ventana

Publicado por JeinnerH (646 intervenciones) el 21/02/2011 19:00:30
Tienes varias opciones para hacer esto. Si se trata de la misma aplicación, lo que puedes hacer es utilizar una variable DW reference, cuando llamas la otra ventana, pasándole como referencia el DW original.

Otra opción es utilizar la base de datos de por medio. Es decir, almacenas la información en el DW 1 y el otro DW 2, recupera la información de la base de datos, según los parámetros que le hayas especificado.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Envio datos a otro dw de otra ventana

Publicado por Shirus (144 intervenciones) el 21/02/2011 19:12:57
Gracias por la atencion, probe l segunda opcion y he tenido varios problemas.
Puedes explicarme un poco de la primera opcion, por favor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 37
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Envio datos a otro dw de otra ventana

Publicado por JeinnerH (646 intervenciones) el 21/02/2011 21:16:29
Ok. Veamos.

Tengo una ventana W_1, dentro el DW_1

Por otro lado, existe otra ventana W_2, con el DW_2

Para el primer caso, creo que no te va a funcionar como te indiqué, porque lós parámetros que se envian se deben agregar a una estructura. Y en las estructuras no pueden pasarse datos por referencia.

Pero sí puedes crear un parámetro tipo DW dentro de una estructura. Siendo este el que lees en la ventana 2.

Entonces en el W_1, tienes un botón por ejemplo, que ejecuta el llamado a la ventana 2. En este alimentas una estructura con el campo DW y le haces el Open a la W_2.

Mientras que en la W_2, recibes la estructura y la asignas al objeto que vas a desplegar DW_2.

Hice unas pruebas y no me funciona bien, porque en la W_2, me hace referencia a la W_1, cuando agrego un nuevo registro. Eso podría suceder por la forma en la cual hice el llamado de la ventana 2.

Ahora bien, no sé para qué necesitas hacer esto de la segunda ventana, pero también existe la posibilidad de utilizar un segundo DW en la ventana 1, el cual esté oculto y luego al presionar el botón del llamado de la ventana 2, le cargas la información y lo muestras. Trabajando el DW, como si fuese otra ventana.

Recuerda que trabajar con dos ventanas, y en cada una la misma información, no es muy recomendable. Es posible que te genere errores al salvar la información en una u otra ventana.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Envio datos a otro dw de otra ventana

Publicado por Shirus (144 intervenciones) el 21/02/2011 21:28:13
Gracias JeinnerH , voy ha probarlo y te comento como me fue.
Muchas gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Envio datos a otro dw de otra ventana

Publicado por Luis (47 intervenciones) el 22/02/2011 09:57:16
Hola,

Te propongo otras dos opciones según necesites:

Si sólo necesitas pasar los datos, y no quieres vincular lo que se haga en una ventana con lo que se haga en la otra, puedes pasar la dw por blob de la siguiente manera.

1-
//creas una estructura en la ventana origen y destino con una variable de tipo blob
//(ya que no puedes pasar variables blob en el open de la ventana)
//supongamos que a tu estructura la llamas str_ejemplo

2-
En el evento/función donde vayas a abrir la otra ventana haces lo siguiente:
//declaras una variable de tipo blob
//y una estructura
str_ejemplo lstr_ejemplo
blob lblb_ejemplo

//Recoges en la variable de tipo blob la dw origen
dw_origen.getFullState(lblb_ejemplo)
//introduces en el blob de la estructura el resultado
lstr_ejemplo.lblb_estructura = lblb_ejemplo
//abres la ventana destino pasando por parámetros la estructura
OpenWithParm(w_destino, lstr_ejemplo)

3-
//en el open de la ventana destino haces lo siguiente:

//primero recoges la structura (recuerda que ya la has creado en el paso 1)
str_ejemplo lstr_ejemplo
lstr_ejemplo = Message.PowerObjectParm
//luego estableces el resultado en la dw destino
dw_2.setFullState(lstr_ejemplo.lblb_estructura)


//------------------------------------------//
La otra manera es si necesitas que los cambios que hagas en una dw se reflejen en la otra.

Por lo que haces lo que te comenta JeinnerH, es decir, lo mismo que el blob, pero con variable dw en vez de blob
y en el destino, en vez de setfullstate haces esto:
//recoges la dw
str_ejemplo lstr_ejemplo
lstr_ejemplo = Message.PowerObjectParm

//conectas con la bbdd (con blob no es necesario)
dw_2.settransobject(sqlca)
//haces sharedata para que se reflejen los cambios de una en la otra.
dw_2.sharedata(lstr_ejemplo.ldw_estructura)
//como es ahora cuando está vinculada, el retrieve que tenga realizado la dw origen,
//no está reflejado en la destino, por lo que has de hacer retrieve.
dw_2.retrieve()

//si necesitas que se quede reflejado filtros, retrieve, etcétera etcétera, tendrías que //pasar también el blob.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Envio datos a otro dw de otra ventana

Publicado por Shirus (144 intervenciones) el 22/02/2011 17:40:54
Muchas Gracias Luis, ahora estoy probando lo que me dices, ya tengo implementado lo que me dijo JeinnerH, quiero probar cual de los dos es mas optimo.

Gracias por la atención.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar