Power Builder - DW dinamicos

 
Vista:

DW dinamicos

Publicado por David G. (25 intervenciones) el 17/11/2004 15:29:13
saludos a todos a quien me pueda ayudar y de antemano muchas gracias.
tengo creado un Dw dinamico, el mismo que me sirve para hacer reportes personalizados es decir el usuario escoje la tabla y los campos. Ahora lo que necesito es de igual manera crear un encabezado (personalizado) para el DW (el que creo dinamicamente) ya que solo me aparece la informacion de la base puede alguien ayudarme?
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:DW dinamicos (encabezado) 1

Publicado por Oscar (1178 intervenciones) el 17/11/2004 19:09:27
Al crear un DW dinámico, se crean las etiquetas de las columnas y los respectivos registros:

http://www.lawebdelprogramador.com/news/mostrar_new.php?id=73&texto=Power+Builder&n1=163952&n2=1&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0

Ahora veamos otras acciones que se pueden realizar en el encabezado:

* Modificar las etiquetas de las columnas:
Si el nombre de la columna se llama nombre, la etiqueta automáticamente se llama: nombre_t
Ejemplos:
dw_1.object.nombre_t.Visible = False
dw_1.object.nombre_t.Text = "nueva_etiqueta"

* Modificar la altura del encabezado:
dw_1.object.datawindow.header.height = 200

* Agregar un rectangulo con relleno gris:
string modstring

modstring = 'create rectangle(Band=background X="206" Y="6" &
height="69" width="1363" brush.hatch="6" brush.color="12632256" &
pen.style="0" pen.width="14" pen.color="268435584" &
background.mode="2" background.color="-1879048064" name=rect1 )'

dw_1.Modify(modstring)

//(CONTINÚA...)
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:DW dinamicos (encabezado) 2

Publicado por Oscar (1178 intervenciones) el 17/11/2004 19:12:04
//(CONTINUACIÓN...)

* Agregar una imagen bmp:
string modstring
modstring = 'create bitmap(band=header x="37" y="12" height="101" width="150" &
filename="C:\logo.bmp" border="0" name=bmp1 )'

dw_1.Modify(modstring)

* Agregar un texto cualquiera en la posición deseada:
dw_1.Modify(&
'create text(band=header alignment="0" ' + &
'text="Hola" border="0" ' + &
'color="16711680" x="200" y="16" height="64" ' + &
'width="411" name=hola_t ' + &
'font.face="Arial" font.height=" -10" ' + &
'font.weight="700" font.family="2" ' + &
'font.pitch="2" font.charset="0" background.mode="1" ' + &
'background.color="65535" ) ' )

Nota: Espero que uno de ellos sea de utilidad.
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:tuve problemas ayudame Oscar por favor

Publicado por David G (25 intervenciones) el 20/11/2004 13:34:48
Muchisimas gracias Oscar por las dos respuestas en LWP, eso era justo lo que necesitaba saber. Ahora tengo un problema lo que paso es que como te contaba el DW se crea en base a los campos de una tabla que selecciona el usuario, ahora si el tipo de reporte que le permito al usuario que escoja puede ser de tipo grid, tabular o freeform, si el tipo es freeform todo me funciona de maravilla pero si el tipo es grid o tabular como tu dices se crea las etiquetas de las columnas con el nombre del campo seguido de _t (los que escogio el usuario). Ahora lo que necesito es que estas etiquetas se me muevan mas hacia abajo. Al ser un objeto estatico del DW lo puedo hacer pero como estos campos se crearon dinamicamente no se como hacer referencia a cada uno de ellos para poder moverlos. Lo que hice es cargar en un arreglo los nombres de las etiquetas de las columnas seguidos de _t y luego el siguiente codigo
cambio de posicion de las etiquetas de los campos
string ls_temp
if is_tiporeporte="grid" or is_tiporeporte="tabular" then
for j= 1 to il_cont
if is_campo[j] <> "" then
dw_3.object.is_campo[j].y=(li_alto+180)-(dw_3.object.is_campo[j].height)
end if
next
end if
pero no me funciona puedes ayudarme por favor o sugerirme alguna manera de como hacerlo ? de antemano muchisimas 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: Uso de Modify cuando se usan una variables

Publicado por Oscar (1178 intervenciones) el 20/11/2004 19:04:58
* No utilices la notación punto. Utilizá Modify.
* Pero cuando uses Modify y una variable, todo debe ser en String y concatenarlos CORRECTAMENTE.

Ejemplo:
El siguiente ejemplo cambia el color de fondo del Objeto DW a rojo:
dw_1.Modify("DataWindow.Color=255")

Pero cuando se usa una VARIABLE, la cosa se complica, para hacer lo mismo:
String ls_color, ls_ModString
ls_color="255"
ls_ModString="DataWindow.Color="+ls_color
dw_1.Modify(ls_ModString)

Basta de teoría, ahora vayamos a tu problema concreto. Averiguaremos el nombre de las etiquetas de las columnas, luego las bajaremos según un valor especificado (no hay necesidad de crear un Array, todo se hace en el ciclo For):

int li_column, li_columncount
string ls_modstring, ls_columnname, ls_etiqueta, ls_valor

//Valor que se moveran:
ls_valor="40"

//Número de columnas
li_columncount = integer(dw_1.Describe("DataWindow.Column.Count"))

//Obtenemos el nombre de las columnas
FOR li_column = 1 TO li_columncount
ls_columnname = dw_1.Describe("#" + String(li_column) + ".Name")
//Añadimos _t al nombre de la columna, para tener las etiquetas
ls_etiqueta=ls_columnname+"_t"

//Movemos las etiquetas según el valor especificado
ls_modstring =ls_etiqueta +".y="+ls_valor
dw_1.Modify(ls_modstring)
//Si deseas puedes ver el nombre de las etiquetas en un lb_1
lb_1.AddItem(ls_columnname)

NEXT
//----------------Fin----------
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: Oscar un último favor

Publicado por David G (25 intervenciones) el 22/11/2004 14:22:16
Muchisimas gracias Oscar con lo que me explicaste todo me funciono muy bien ahora quisiera saber si me puedes decir alguna bibliografia en la que pueda aprender todo lo que me has explicado. y nuevamente 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: Bibliografia de PB

Publicado por Oscar (1178 intervenciones) el 22/11/2004 20:42:13
Me alegra que hayas solucionado tu problema. Referente a mencionar alguna bibliografia de lo explicado, es un poco difícil mencionar una sola fuente. Ojalá existiese un libro de PB completo que sea bastante útil y completo. Lamentablemente, no existe ese libro ideal; toda la literatura de PB está dispersa.

Sin embargo, te puedo mencionar algunos fuentes que en mi caso me sirvieron:
* De libros: Heys, Gustavo Coronel, Castañeda.
(existen como otros 8 libros más de PB en español; pero son básicos).
* Tutoriales en la Web (no encontré ninguno bueno, salvo de Gustavo Coronel).
* Foros de PB:
Creo son las mejores fuentes para aprender, ya que provienen directamente de la experiencia de los que usan este producto. Uno de ellos, es el foro de Sybase y por supuesto el nuestro. Más bien, aprovecho la ocasión, para instar a todos los amigos del foro, que cuando envien un post, coloquen un título bastante claro y descriptivo del problema. Eso ayuda bastante o sirve de guia, cuando alguien busca un tema en el foro.
* Otras fuentes valiosas, son: La ayuda de PB y los Online Books (que son los más completos).
* Finalmente, existen muchos sitios con Tips de PB.
* La última instancia es buscar en Google; pero el truco está en buscar empleando palabras claves en inglés.

El resto de los scripts, se los obtiene por ensayo y error: "1% de inspiración y 99% de transpiración".
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: GRACIAS

Publicado por David G. (25 intervenciones) el 22/11/2004 21:40:53
GRACIAS Oscar por toda la ayuda brindada.
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