Power Builder - cambiar color filas

   
Vista:

cambiar color filas

Publicado por Marianela (1 intervención) el 13/07/2010 22:52:34
Buenas, una pregunta, necesito cambiar en las consultas tipo grid los colores de las filas recuperadas, de tal forma que de fila por medio cambie de color, por ejemplo, que la fila uno sea blanca y la fila dos sea celeste, la fila tres blanca y la fila 4 celeste, etc, esto solo para diferenciar las filas pero desde programación, no a nivel del datawindows, lo que me confunde es como especificar en la programación que fila cambiarle el color, ya que la programación que tengo cambia los colores de las columnas pero no se como especificar que de una fila determinada, me puedes ayudar?. 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

RE:cambiar color filas

Publicado por JeinnerH (638 intervenciones) el 14/07/2010 00:33:00
Hola Marianela.

Para esto te puedo recomendar que utilices algo como el código siguiente:
Case(Mod(GetRow(), 4) When 1 Then RGB(255, 0, 0) When 2 Then RGB(0, 255, 0) When 3 Then RGB(0, 0, 255) else RGB(192, 192,0))

La cantidad de colores es el factor del Mod, es decir 4, esto hace que el resultado varie entre 1, 2, 3 y 0, para todos los registros. Así se puede controlar cuál color se desea utilizar en cada fila.

Puedes ulizar este código en el backgroud o puedes insertar un objeto e tipo rectángulo (le quietas los bordes) que colocas detrás de los campos. Los campos los pones con color de fondo transparente y el rectángulo con el Case de colores o llamando una formula en la expresión del backgroud.

Si tu DW es fijo y no requiere que se amplien columnas ni algo por el estilo, es mejor que uses el rectángulo, si el DW es más dinámico, pues entonces el background a cada campo.
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:cambiar color filas

Publicado por L.Barzi (134 intervenciones) el 14/07/2010 19:02:56
Asegurate que el fondo de tus campos sea transparente, en el evento Constructor del DW copia este codigo:

String ls_Color

ls_Color = "DataWindow.Detail.Color = '0~t if(mod(getrow(),2) = 0,rgb(214,223,247), " + "rgb(255,255,255))'"

This.Modify(ls_Color)

Ya si deseas alternar los colores desde un commandbutton solo haces los cambios respectivos..

Otra cosa podrias crear una funcion que en tiempo de ejecucion te cambie el fondo de los campos del DW sea transparente, nose el codigo exacto del Background Color Transparent si alguien tiene los codigos de cada Background Color seria excelente.
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