Power Builder - Como Hacer referencia un Argumento Array en una DW

 
Vista:

Como Hacer referencia un Argumento Array en una DW

Publicado por Claudio (6 intervenciones) el 09/09/2009 21:22:15
Hola a todos, quisiera saber como hago referencia a un argumento NumberArray dentro de una DataWindow en un computed object, probe de esta manera:

arguemento(1) o arguemento[1]
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:Como Hacer referencia un Argumento Array en una

Publicado por Leopoldo Taylhardat (710 intervenciones) el 10/09/2009 16:22:02
Ejemplo para obtener valor de un ComputedObject...

ld_monto=dec(dw_ventas.object.total_venta[1])
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Como Hacer referencia un Argumento Array en una

Publicado por Claudio (6 intervenciones) el 10/09/2009 17:34:29
Leopoldo desde ya muchas gracias por la ayuda, pero yo tengo que hacer referencia a un argumneto array en un ComputedObject dentro de una DW Object

Como seria??

Saludos
Claudio
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:Como Hacer referencia un Argumento Array en una

Publicado por miguel (153 intervenciones) el 11/09/2009 14:05:42
si te refieres a un argumento array del retrieve del datawindow (pasas un array al recuperar el datawindow?).

con la versión 10 de pb:
si tu argumento por ejemplo se llama: al_claves[ ], puedes crear una columna computada y meter en la expresión: al_claves, pero al_claves[1] por ejemplo, no funciona. he probado meter una función global en la expresión a la que se pasa el al_claves y un índice del elemento a obtener, pero no compila.

Dado el hecho que, cuando recuperas el datawindow con retrieve, ya sabes el valor del array, podrías asignar los valores a una cadenena alfanumérica, indicando elementos / separadores de valores. Luego en una columna computada podrás usar pos y mid para obtener determinado valor. Para obtener una columna a la que puedes asignar la cadena con valores tienes que añadir una columna al select del datawindow. Por ejemplo:

Select col1, col2, ....,
space( 1024) as "cs_cadena_a_la_que_asigno_valores_array"
from mi_tabla
where col1 in ( :al_claves)

por otra parte, no sé si sería posible obtener los valores mediante un describe( '.....') ???

he probado también con la versión 5 de pb: no funiona ni el al_claves ni el al_claves[1].

creo que la opción más fácil es la de la asignación desde código del array a una columna computada DEL SELECT ( cs_cadena_a_la_que_asigno_valores_array).

Hope it helps,

Miguel
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:Como Hacer referencia un Argumento Array en una

Publicado por miguel (153 intervenciones) el 11/09/2009 21:11:57
mmm, me he dado cuenta de una cosa

(no para versión 5, sólo sé que en la 10 va, pero posiblemente también a partir de 6.5.1):
------------------------------------------------------------------------------------------------------------------------
cuando colocas el nombre del argumento de tipo "number array" o string array en la expresión de una columna computada (con la versión 5 de pb no puedes), sin usar las [], el formato de la columna es de tipo string! Eso significa que puedes acceder al array. He visto que si el tipo es string array, que los valores aparecerán en la columna computada como un cadena que contiene:
'argumento1' 'argumento2' 'argumento3'. Los argumentos están separados por espacios. Por lo menos eso es el caso cuando haces un preview del datawindow, pasando los argumentos separados por espacios para los valores del array. No se si se usará otro separador cuando pasas un array al retrieve desde powerscript, pero es tan sencillo como invesigar un poco, haciendo un getitem de tu columna computada.

significa que puedes precindir de asignar el valor a una columna computada que añades en el SELECT (tal como describi en la anterior solución)

de todas formas .... sólo por curiosidad ... ¿qué es lo que quieres hacer con los valores en el datawindow? (no tengo ni idea, pero a un report dentro de una dw de tipo 'composite' seguramente puedes pasar el argumento de tipo array sin problemas ... ?)

miguel
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:Como Hacer referencia un Argumento Array en una

Publicado por Claudio (6 intervenciones) el 14/09/2009 15:52:22
Miguel desde ya muchas gracias por la ayuda, estoy modificando uno reportes para un sistema que ya estaba realizado, y en una DW donde el argumento que antes se pasaba un solo valor ahora se necesita pasar mas de un valor para utilizarlo en el WHERE en una sentencia IN. El tema es que en un computed object en la DW estaba utiliozando ese argumento en un if condicional para mostrar un valor o no por eso si se podia hacer referencia directamente al argumento array, ya que que es simpre el primer valor.
La solución de armar un string y luego parciarlo esta buena, pero opte por pasar otro argumento con el valor a comparar ya que me parecio mas sencillo

DE VUELTA MUCHAS GRACIAS

Claudio
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