Xbrowse, cambio color texto y celda (Solucionado)

Post Reply
JoseLuis
Posts: 428
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Xbrowse, cambio color texto y celda (Solucionado)

Post by JoseLuis »

Buenas

Tengo un xbrowse, al que aplico el efecto pijama:

Code: Select all | Expand

               oLbx:bClrStd:= { || { CLR_BLACK, If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) ) } }


en una columna necesito que dependiendo de un valor, me pinte el texto en rojo y con otro valor, me pinte el fondo en rojo:
Texto en Rojo

Code: Select all | Expand

       WITH OBJECT oLbx:aCols[ 8 ]
                :cTooltip := "(G)iro,(M)etalico"
                :bEditValue := {|| if((aAlias[22])->clasef="1","G","M")}
                :nHeadStrAlign := AL_CENTER
                :nDataStrAlign := AL_CENTER
                :bClrStd := {|| If(((aAlias[22])->clasef="1" .and. (aAlias[22])->estado="1" ),{CLR_BLACK,nRGB(250,219,216)}, {CLR_BLACK,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) )}) }
nRGB(242,247,252),nRGB(226,226,208) )}) }
        END WITH
 

Image
Fondo en Rojo

Code: Select all | Expand


        WITH OBJECT oLbx:aCols[ 8 ]
                :cTooltip := "(G)iro,(M)etalico"
                :bEditValue := {|| if((aAlias[22])->clasef="1","G","M")}
                :nHeadStrAlign := AL_CENTER
                :nDataStrAlign := AL_CENTER
                :bClrStd := { || if((aAlias[22])->clasef="2" .and. (aAlias[22])->estado="1", {CLR_HRED,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) )},{CLR_BLACK,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) )}) }
        END WITH

Image

He probado a hacer:

Code: Select all | Expand

       WITH OBJECT oLbx:aCols[ 8 ]
                :cTooltip := "(G)iro,(M)etalico"
                :bEditValue := {|| if((aAlias[22])->clasef="1","G","M")}
                :nHeadStrAlign := AL_CENTER
                :nDataStrAlign := AL_CENTER
                :bClrStd := Colores(oLbx,aAlias)
        END WITH

...................................................

//---------------------------
static function Colores(oLbx,aAlias)
local respuesta

        if (aAlias[22])->clasef = "1" .and. (aAlias[22])->estado = "1"
                respuesta := {|| {CLR_BLACK,nRGB(250,219,216)}, {CLR_BLACK,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) )} }
        endif

        if (aAlias[22])->clasef = "2" .and. (aAlias[22])->estado = "1"
                respuesta := {||{CLR_HRED,CLR_BLACK,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) ) }, {CLR_BLACK,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) )} }
        endif

return respuesta

 

y nada, lo ignora.
Image

Como podría hacerlo?
Last edited by JoseLuis on Sun Aug 28, 2022 11:05 am, edited 1 time in total.
--------------------------
Saludos

Jose Luis
User avatar
cmsoft
Posts: 1297
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Been thanked: 2 times

Re: Xbrowse, cambio color texto y celda

Post by cmsoft »

Asi no te funcionaria? (No lo he probado)

Code: Select all | Expand


WITH OBJECT oLbx:aCols[ 8 ]
                :cTooltip := "(G)iro,(M)etalico"
                :bEditValue := {|| if((aAlias[22])->clasef="1","G","M")}
                :nHeadStrAlign := AL_CENTER
                :nDataStrAlign := AL_CENTER
                :bClrStd := {|| Colores(oLbx,aAlias)}
END WITH
 
JoseLuis
Posts: 428
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Xbrowse, cambio color texto y celda

Post by JoseLuis »

Buenas

He probado:

Code: Select all | Expand

       WITH OBJECT oLbx:aCols[ 8 ]
                :cTooltip := "(G)iro,(M)etalico"
                :bEditValue := {|| if((aAlias[22])->clasef="1","G","M")}
                :nHeadStrAlign := AL_CENTER
                :nDataStrAlign := AL_CENTER
                :bClrStd := { || Colores(oLbx,aAlias)  }
.......................................................

//---------------------------
static function Colores(oLbx,aAlias)
local respuesta

        if (aAlias[22])->clasef = "1" .and. (aAlias[22])->estado = "1"
                respuesta := "{CLR_BLACK,nRGB(250,219,216)}, {CLR_BLACK,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) )}"
        endif

        if (aAlias[22])->clasef = "2" .and. (aAlias[22])->estado = "1"
                respuesta := "{CLR_HRED,CLR_BLACK,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) ) }, {CLR_BLACK,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) )}"
        endif
return respuesta


 


Me da el error "Error array access
--------------------------
Saludos

Jose Luis
User avatar
jacgsoft
Posts: 106
Joined: Fri Nov 24, 2006 9:03 pm
Location: Lima - Peru

Re: Xbrowse, cambio color texto y celda

Post by jacgsoft »

For I=1 To [Numeros de columnas]
If I=8
oBrw:aCols[I]:bClrStd:={|| If(((aAlias[22])->clasef="1" .and. (aAlias[22])->estado="1" ),{CLR_BLACK,nRGB(250,219,216)}, {CLR_BLACK,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) )}) }
nRGB(242,247,252),nRGB(226,226,208) )}) }
Endif
Next I
JoseLuis
Posts: 428
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Xbrowse, cambio color texto y celda

Post by JoseLuis »

Hola

No me funciona.

Como he dicho antes, lo que necesito es operar sobre la misma celda, pero con múltiples condiciones.
Es decir en la columna 8 quiero mostrar lo siguiente:

- Si en la base de datos la forma de pago es Giro, y está pagada, (Color fuente y fondo normal) :bClrStd:= { || { CLR_BLACK, If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) ) } }
- Si en la base de datos la forma de pago es Giro y no está pagada, (Color fuente normal y fondo Rojo) :bClrStd := {|| If(((aAlias[22])->clasef="2" .and. (aAlias[22])->estado="1" ),{CLR_HRED,CLR_BLACK,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) ) }, {CLR_BLACK,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) )}) }
- Si en la base de datos la forma de pago es Metalico y esta pagada, (Color fuente y fondo normal) :bClrStd:= { || { CLR_BLACK, If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) ) } }
- Si en la base de datos la forma de pago es Metalico y no esta pagada, (Color fuente Rojo y fondo Normal) :bClrStd := {|| If(((aAlias[22])->clasef="1" .and. (aAlias[22])->estado="1" ),{CLR_BLACK,nRGB(250,219,216)}, {CLR_BLACK,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) )}) }

De nomento solo esos supuestos , pero luego iremos añadiendo mas supuestos de colores y fondo, dependiendo de los valores de otros campos.
--------------------------
Saludos

Jose Luis
JoseLuis
Posts: 428
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Xbrowse, cambio color texto y celda (Solucionado)

Post by JoseLuis »

Solucionado

A veces lo mas sencillo no lo veo y me complico la vida tontamente:

Code: Select all | Expand

       WITH OBJECT oLbx:aCols[ 8 ]
                :cTooltip := "(G)iro,(M)etalico"
                :bEditValue := {|| if((aAlias[22])->clasef="1","G","M")}
                :nHeadStrAlign := AL_CENTER
                :nDataStrAlign := AL_CENTER
                :bClrStd := {|| If(((aAlias[22])->clasef="1" .and. (aAlias[22])->estado="1" ),{CLR_BLACK,nRGB(250,219,216)},;
                                If(((aAlias[22])->clasef="2" .and. (aAlias[22])->estado="1" ),{CLR_HRED,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) )},;
                                 {CLR_BLACK,If( oLbx:KeyNo % 2 == 0, nRGB(242,247,252),nRGB(226,226,208) )})) }
        END WITH


Simplemente enlazando varios if, y ya esta.
--------------------------
Saludos

Jose Luis
Post Reply