Power Builder - Datawindows con argumentos Number Array

 
Vista:
sin imagen de perfil

Datawindows con argumentos Number Array

Publicado por Hugo SS (11 intervenciones) el 22/02/2011 14:12:05
Hola! como estan?

Estoy con una situación que me está rompiendo el coco y no logro resolver. Primero que nada estoy usando PB 8.0.
Resulta que estoy trabajando en la impresión de ventas por pantalla. Tengo 2 datawindows que cada uno posée un atributo Number Array.
Un datawindow muestra todos los detalles que tienen n ventas realizadas a un cliente. Por lo tanto el datawindow recibe un array de id's de n ventas en su retrieve().
El 2do datawindow es similar pero realizando agrupaciones obtiene totales diferentes de unsas n ventas realizadas a un cliente. Por lo tanto también recibe un array de id's de n ventas en su retrieve().

El problema que tengo que es que no logro encontrar un datawindow contenedor para estos otros 2 datawindow arriba mencionados que me permita relacionar el Number Array del datawindow detalles con el Number Array del datawindow totales. Y esto necesito lograr ya que desde el código fuente yo hago un único retrieve( id_array[]).
id_array[] contiene los id de las ventas cuyos detalles y totales quiero mostrar en la impresión por pantalla.

He probado con el composite, pero cuando quiero relacionar ambos atributos de los 2 datawindows en el panel de propiedades no puedo porque el composite te deja relacionar atributos tipo numérico, string, fecha y no sé cual más, pero array no.
Tampoco puedo usar un freeform porque cuando quiero relacionar los number array en el panel derecho de propiedades me indica error y no me permite realizar la relación.

Ojalá alguien me pueda ayudar, orientar a ver cómo puedo solucionar la comunicación entre los Number Array de los datawindow o quizá haya algun datawindow contenedor qeu pueda usar que me permita hacer esa relación sin problemas.

Gracias! Saludos!
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

RE:Datawindows con argumentos Number Array

Publicado por Luis (47 intervenciones) el 22/02/2011 14:20:16
Hola Hugo,

Entiendo que en las datawindows recoges diferenes campos de las mismas tablas, si es así, podrías hacer la misma select en ambas datawindows (igua incluso en el orden de las columnas, total y completamente igual). En una muestras los campos que te interesen para esa dw, y en la otra pues lo mismo.

Una vez hecho esto y después de que estén conectadas, esto es, el settransobject (que ya está codificado en el u_dw por las pfc's); y antes del retrieve de la primera, haces sharedata, y así, cuando hagas retrieve en una, te lo hace también en la otra.

No sé si es lo que necesitas, espero que sí.

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:Datawindows con argumentos Number Array

Publicado por Hugo SS (11 intervenciones) el 22/02/2011 15:20:54
Hola Luis!
Muchas gracias por tu pronta respuesta.
Sinceramente si bien, tengo conocimientos en PB aún lo sigo aprendiendo y desconozco el uso de sharedata(). Acabo de leer sobre la función en internet pero no me queda claro.
Podrías darme un ejemplo sobre como hacer lo que me acabas de decir?

Voy a intentar explicar mejor el caso q tengo:

Yo cuento con un datawindow d_items_detalles que contiene un select a 3 tablas y trae el listado detallado de todos los productos de diferentes ventas. Esta datawindow cuenta con el atributo array_moid que es tipo Number Array.
En el pié dentro de esta datawindow tengo un objeto report que contiene la datawindow d_items_totales que tiene un select a las mismas 3 tablas pero trae un único registro de resultado sumando totales de productos, total de iva, total de descuentos. Por lo tanto tiene group by agrupando por tipo de elemento (producto, iva, descuento). Esta datawindow cuenta con el atributo array_moid_tot que es tipo Number Array.

Como podría aplicar el sharedata y hacer que la pantalla de impresión se genere correctamente haciendo que ambos Number Array reciban el array que les mando desde en tiempo de ejecución mediante el retrieve(idventas_array)?

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:Datawindows con argumentos Number Array

Publicado por Luis (47 intervenciones) el 22/02/2011 15:54:05
Hola Hugo,

A ver si te puedo ayudar,

Primero, mi consejo es que si tienes alguna vez dudas sobre algún evento o función de propios de PB, no busques por la red, sino primero en la misma ayuda de pb, te situas sobre el nombre del evento o función sobre el cuál tienes dudas y pulsas mayúsculas+F1, te vendrá mejor explicado y con ejemplos y sobre la versión de pb en la que estés en ese momento.

Por otro lado, lamento decirte que no termino de entender bien tu último párrafo, pero de todos modos, te indico como hacer el sharedata.

En el event open de la ventana, pondrías algo así

//dw_principal será la que le hagas el retrieve
//dw_sec_1 será una de la ventana que traerá, o filtrará datos según lo hagas en la principal
//dw_sec_2 será una de impresión que cuando la muestres, tendrá los mismos datos que la principal.

dw_principal.Sharedata( dw_sec_1 )
dw_principal.Sharedata( dw_sec_2 )

//y ya está, cuando hagas retrieve o cualquier operación que varíe contenido o número de registros de la principal, se registrarán los cambios en las otras dos.

//Eso sí, recuerda que han de tener la misma sentencia SQL).

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:Datawindows con argumentos Number Array

Publicado por Hugo SS (11 intervenciones) el 22/02/2011 16:29:38
Gracias por tu ayuda Luis!
Voy a ponerme a probar con tu explicación a ver qué pasa. :)

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