La Web del Programador: Comunidad de Programadores
 
    Pregunta:  4779 - PROPIEDADES DEL OBJETO DATAWINDOW
Autor:  jose juan silva gamiño
¿Cómo puedo cambiar las propiedades de los objetos que contiene un dataWindow en tiempo de ejecucion sin tener que usar su nombre especifico?
ej. dw_1.object.sle_tot.x=2 yo quiero algo como
dw_1.object.objeto_generico.x=2

  Respuesta:  Jordi Gonzalez
Hola jose, no se cuando publicaste esto, posiblemente ya lo has solucionado, pero te dare una indicación que me fue muy bien en su dia.

En la propiedad modify del dw, se le puede pasar el valor #1, donde 1 es el número de columna a tratar. Esto seria algo así:

dw_1.Modify("#1.name") //Nombre de la columna
dw_1.Modify("#1.height") //Alto del objeto
etc...

Así hasta todas las propiedades de un DWO (DataWindowObject)

P.D: esta propiedad tambien funciona para el Describe del DW.

Salu2""

  Respuesta:  ricardo hernandez r. HERNADEZ
Mira es facil con un Modify

Ejemplo tienes 5 objetos con nombre parecido pues se hace algo parecido

For li_obj = 1 to 5

Modify("sle_" + String(li_obj) + ".x = 2" )
//* o de esta forma
ls_datox = 2
Modify("sle_" + String(li_obj) + ".x =" + ls_datox )

Next

Espero te ayude con esto

  Respuesta:  CARLOS MARTIN MERINO
Hola, creo que con "dw_1.object... " no puedes hacer lo que tu quieres, puesto que tienes que indicar el nombre del objeto que quieres modificar.

Para hacer lo que tu quieres, puede utilizar la la función MODIFY.

ej.
string ls_objeto
ls_objeto = "objeto_generico.x=2"
dw_1.modify(ls_objeto)

Al poder utilizar una variable, puedes hacer cualquier cosa.

ej.
string ls_objeto
string ls_valor = "y"
if ls_valor = "y" then
ls_objeto = "campo_texto.y = 2"
else
ls_objeto = "campo_texto.x = 2"
end if
dw_1.modify(ls_objeto)

etc...

Espero que te haya servido de ayuda.