Power Builder - Cambiar color de fila en ejecucion

 
Vista:

Cambiar color de fila en ejecucion

Publicado por Sergio (52 intervenciones) el 18/12/2002 12:32:33
Hola,

Me gustaría cambiar el color de fondo de unas filas determinadas en una grid desde el script. Como lo podría hacer?

Se que se puede cambiar el color de fondo de una columna con Modify() y la propiedad background:

dw_1.modify('nombre_columna.background.color = RGB(11,169,214)')

Pero no sabría hacerlo con una fila, alguien sabe como hacerlo?

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 de fila en ejecucion

Publicado por Ricardo (1957 intervenciones) el 18/12/2002 16:33:34
Hola que tal:

Puedes hacerlo atraves de las propiedades en expresiones, ahi encontraras la opcion del background color, programa esa propiedad para cada uno de los campos y listo.

Puedes utilizar el currentrow() para aplicarlo cuando este seleccionado ese campo, y al estar codificados todos te da el efecto de seleccionar todo el renglon.

Espero te sirva. Un saludo.
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 de fila en ejecucion

Publicado por Oscar (1178 intervenciones) el 18/12/2002 20:14:38
Si deseas mayores detalles, supongamos que el campo tenga un fondo blanco si la fila es la actual (tiene el foco) y gris en las demás. Abres la datawindow, señalas la columna a modificar, das clic derecho y accedes al apartado expressions.
En el campo que dice background mode, utilizas la función IF(b,t,f), no es lo mismo que IF THEN de PB script. Es decir, debes escribir:
if(getRow()=currentRow(),RGB(255,255,255),RGB(192,192,192))
Si lo que deseas es cambiar el color según una condición, por ejemplo, por ejemplo, si tienes una columna llamada "saldo". puedes escribir:
if(saldo<0,RGB(255,0,0),RGB(0,0,0))
Al ejecutar o hacer un preview, algunas filas tendrán un saldo rojo o negro, según el valor que tengan.
Estos detalles son por si acaso.
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 de fila en ejecucion

Publicado por Carlos (1 intervención) el 29/01/2008 19:23:04
Ese Pequeño codigo sirve en caso cambies el foco entre filas.. pero si hablamos de columnas=???.
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 por la ayuda

Publicado por Sergio (52 intervenciones) el 19/12/2002 08:05:31
Gracias Ricardo y Oscar,

No es exactamente lo que yo quería pero me ha servido para investigar más profundamente. No quería seleccionar un campo y q cambiase de color, ni tampoco poner la misma condicion en todos mis campos, ya que son bastantes y me sonaba que habia alguna forma de cambiar de color de una fila completa con una sola expresion.

Tras mi investigación he dado con la solución, para cambiar de color a una fila según una condición basta con:

- Click derecho en "la barra" de detalle (no en el cuerpo del detalle).
- Propiedades --> Expressions
- En color insertar la condicion deseada por ejemplo la mia:
if ( color = 1,rgb( 211, 255, 255),if(color = 2,rgb(133,255,255),if (color = 3,rgb(1,214,214),if (color = 4,rgb(11,169,221),if (color = 5,rgb(100,100,255),if (color = 6,rgb(58,0,232),rgb(0,78,255)))))))
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 por la ayuda

Publicado por solin (51 intervenciones) el 06/01/2009 21:46:02
Buen dato hombre, lo estaba buscando

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

Dato Adicional

Publicado por solin castillo (1 intervención) el 13/08/2015 22:55:38
Estimado Sergio

Probé lo que me indicaste pero no me funcionó... me pedia algo de TRUE / FALSE

Mas bien como lo que queria era pintar los impares de un color y los pares de otro.
Probé lo siguiente:

if(mod( getrow(), 2 )=0,rgb( 191,254,243),rgb( 220,253,191) )


Pruebalo, igual gracias por el aporte(estoy usando PB 11.5)
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

Buen dato amigo gracias

Publicado por Gino (1 intervención) el 05/03/2020 19:59:25
Muy buen aporte, 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