miércoles, 1 de agosto de 2007

Creacion Dinamica de Objetos en un Datawindows (PowerBuilder)

Alumnos de la Universidad del santa me realizaron la consulta sobre la creación dinámica de objetos en un dataWindow.
Para crear objetos dinamicamente se utiliza la función Modify la cual sirve para modificar los parámetros de los objetos dentro de un datawindow así como para realizar la creación dinámica de objetos. La función Describe se utiliza para leer los parámetros de los objetos de un datawindow.
Ejemplos
Para saber que valor tiene la propiedad visible de una columna llamada suma y en un datawindow llamado dw_1 la sintaxis seria la siguiente:
//-------------Script----------------------
String estado
estado=dw_1.describe("suma.visible")
//alternativamente podria ser tb de la siguiente manera:
estado=dw_1.object.suma.visible

Para modificar la propiedad visible del ejemplo anterior seria de la siguiente manera
//------------Script----------------------------
dw_1.modify("suma.visible='1'")
//Alternativamente podria ser de la siguiente manera
dw_1.object.suma.visible='1'

Para la creacion de objetos tenemos los siguientes ejemplos
//-----------------Script-------
//---------Crear un texto----------------------
dwt.Modify( "create text(band="+banda+" color='100' alignment='2' border='0'" + &
" moveable=1 resizeable=1 x='"+xx+"' y='"+yy+"' height='150' width='350' text='texto' " + &
" name="+nombre+" tag=' ' background.mode='0' background.color='16777215')")

// donde las variables xx e yy representan la posición del objetos estas variables han sido convertidas a cadena para poder concatenerlas en la función. La variable banda es donde se creara el objeto ( 'header','Detail','Background','Foreground') y el nombre es el que le asignaremos al objeto.
//--------------Crear Ellipse, rectangulos y lineas-----------------------

//----------Ellipse-------------
error1=dwt.Modify('create ellipse(band='+banda+' x="'+xx+'" y="'+yy+'" height="120" width="137" name='+nombre+' visible="1" brush.hatch="6" brush.color="0" pen.style="0" pen.width="5" pen.color="16777215" background.mode="2" background.color="0" )')
case 7
//----------Rectangulo---------------
error1=dwt.Modify('create rectangle(band='+banda+' x="'+xx+'" y="'+yy+'" height="120" width="137" name='+nombre+' visible="1" brush.hatch="6" brush.color="0" pen.style="0" pen.width="5" pen.color="16777215" background.mode="2" background.color="0")' )
case 8
//--------------Linea----------------------------
error1=dwt.Modify('create line(band='+banda+' x1="'+xx+'" y1="'+yy+'" x2="1499" y2="264" name='+nombre+' visible="1" pen.style="0" pen.width="5" pen.color="0" background.mode="2" background.color="16777215")')

La variable error1 se utiliza para verificar el error que se podría producir al ejecutar la operación de creación. Para la creación de otros objetos se sigue un procedimiento similar.

2 comentarios:

Yonni Lopez Vitor dijo...

Me ayudo Mucho pero cual seria la syntaxis para crear una columna???

Hagler dijo...

y como seria para crear un columna?.