Xbrowse, cambio color texto y celda (Solucionado)

Xbrowse, cambio color texto y celda (Solucionado)

Postby JoseLuis » Sat Aug 27, 2022 5:11 pm

Buenas

Tengo un xbrowse, al que aplico el efecto pijama:
Code: Select all  Expand view  RUN
               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 view  RUN
       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 view  RUN

        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 view  RUN
       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
JoseLuis
 
Posts: 428
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Xbrowse, cambio color texto y celda

Postby cmsoft » Sat Aug 27, 2022 7:12 pm

Asi no te funcionaria? (No lo he probado)
Code: Select all  Expand view  RUN

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
 
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Xbrowse, cambio color texto y celda

Postby JoseLuis » Sat Aug 27, 2022 8:58 pm

Buenas

He probado:
Code: Select all  Expand view  RUN
       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
JoseLuis
 
Posts: 428
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Xbrowse, cambio color texto y celda

Postby jacgsoft » Sun Aug 28, 2022 3:46 am

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
User avatar
jacgsoft
 
Posts: 105
Joined: Fri Nov 24, 2006 9:03 pm
Location: Lima - Peru

Re: Xbrowse, cambio color texto y celda

Postby JoseLuis » Sun Aug 28, 2022 7:54 am

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)

Postby JoseLuis » Sun Aug 28, 2022 11:04 am

Solucionado

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

Code: Select all  Expand view  RUN
       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
JoseLuis
 
Posts: 428
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 32 guests

cron