Power Builder - Obtener valor de Datawindow Child

 
Vista:

Obtener valor de Datawindow Child

Publicado por Gonzalo Sanchez (2 intervenciones) el 14/10/2014 17:57:55
Hola, soy bastante novato en el uso de PB. El problema que tengo es el siguiente: estoy exportando el contenido de un reporte a un archivo de texto; este reporte tiene por nombre dw_rp2 y los valores de los campos los puedo tomar perfectamente con el siguiente código:

ls_valor = dw_rp2.getitemstring(j,'nombrecampo')

Pero dentro de este reporte tengo otro reporte más, llamado "entsal" que contiene 2 campos ("ent" y "sal"); de éstos no puedo tomar el valor (cuando debbugeo veo que tomar el valor null). El código que tengo es el siguiente:

DataWindowChild ldwch_H
integer li_row
dw_rp2.GetChild('entsal', ldwch_H)
li_row = ldwch_H.GetRow()
ls_valor = ldwch_H.GetItemString(li_row,'ent')

Agradecería muchísimo si alguno me pudiera ayudar con este tema, ya que mis conocimietnos son limitados y no he podido encontrar en internet cuál es el error que estoy cometiendo.
P.D: Esta es una imagen del reporte dw_rp2 y el reporte entsal que contiene http://oi59.tinypic.com/14uj9qd.jpg

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

Obtener valor de Datawindow Child

Publicado por Leopoldo Taylhardat (710 intervenciones) el 16/10/2014 00:12:57
Saludos...

El primer error que estas cometiendo es que estas usando el child como un dw normal...
Los child se usan cuando manejas un dato dependiendo de argumentos de busqueda por cambio de un dato en un dw...
El child se maneja de forma que de el valor al campo en el dw normal(base)
Te explico...
tienes un dw que contiene dos columnas "pais" y "ciudad"... entonces para no cometer el error de asignar una ciudad que no exista en un pais determinado, haces un retrieve de las ciudades al cambiar el pais... por supuesto vas a asignar en la columna ciudad un datawindow (dropdowndatawindow) que busque las ciudades del pais que requieras....
entonces cuando hay cambio de datos en pais en el evento "itemchanged" haces un retrieve del child (de ciudad) en este caso pasandole de paràmetro el pais al retrieve...
Ejemplo:
creas un datawindow de nombre "ciudad_dddw_por_pais" con el argumento a_pais y en el where pones pais=:a_pais.
en el data window base asignas a la columna ciudad en edicion : tipo dropdowndw y asignas el datawindow "ciudad_dddw_por_pais" en el display pones ciudad y en dato ciudad
en la ventana defines una variable de instancia "datawindowchild idwc_ciudad"
en el evento script constructor del dw (base) colocas la linea siguiente
this.getchild("ciudad",idwc_ciudad)
en el evento itemchanged colocas estas lineas...
choose case dwo.name
case "pais"
idwc_ciudad.settrasnobject(sqlca)
idwc_ciudad(data)
end choose
-------------------------
en este caso cuando cambias el valor del pais te busca las ciudades del pais correspondiente....
Espero que te sirva.
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

Obtener valor de Datawindow Child

Publicado por Gonzalo Sanchez (2 intervenciones) el 18/12/2014 15:25:38
Leopoldo, muchas gracias por tu respuesta! No es exactamente lo que necesitaba pero de todas maneras me sirvió.
Gracias por tu tiempo, 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