FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Como Cambiar el Color de una Celda en Xbrowse
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Como Cambiar el Color de una Celda en Xbrowse
Posted: Thu May 14, 2020 05:16 PM

Amigos

Muy buen dia.

Necesito cambiar el color de una Celda de Xbrowse usando ARRAY, si cumple una condicion.

El Array tiene originalmente 6 Columnas, pero el Xbrowse muestro solo 4.

El problema es que debo marcar con un color la primera Celda, siempre que una Columna del Array y que no es parte de las columnas del Xbrowse, tiene valor "S".

Con una Base de datos lo hago asi:
oCol:aCols[1]:bClrStd:= {|| if(Material->Estado = "S", {CLR_WHITE,CLR_RED}, {CLR_BLACK,nRGB(255,248,220)}) }

Pero con Array y que la condicion la tiene una columna que no es parte del Xbrowse, no se me hace ni idea.

Muchos Saludos,

Antonio

FWH 22.10 - HARBOUR - PELLES C
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: Como Cambiar el Color de una Celda en Xbrowse
Posted: Thu May 14, 2020 05:36 PM
Yo lo hago de la siguiente manera:
Code (fw): Select all Collapse
......

    oCol          = oBrwItem:AddCol()
    oCol:bStrData := {|| if(Len( oFac:detalle ) > 0 , oFac:detalle[oBrwItem:nArrayAt]["serial"] ,"" ) }
    oCol:cHeader  = "Serial Artículo"
    oCol:nWidth   = 180
    oCol:nHeadStrAlign = AL_LEFT
    oCol:nDataStrAlign = AL_LEFT    
    oCol:oHeaderFont = oFont
    oCol:bClrStd      = {|| {CLR_BLACK,colorEstado2( cValtoChar( oFac:detalle[oBrwItem:nArrayAt]["estado"] ) ) }  } //aqui le pasas el valor del array que sea necesario validar
    oCol:bClrSelFocus = {|| {CLR_WHITE,colorEstado( cValtoChar( oFac:detalle[oBrwItem:nArrayAt]["estado"]) ) }  } //aqui le pasas el valor del array que sea necesario validar

......
****************************
*CAMBIA EL COLOR DE LA CELDA
****************************
Function colorEstado(valor)
IF valor=="A"
    Return nRGB(139,139,139) //gris oscuro
ELSEIF valor=="D"
    Return nRGB(0,210,0) //verde oscuro
ELSE
    Return nRGB(0,120,215) //Azul Defecto
ENDIF
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Como Cambiar el Color de una Celda en Xbrowse
Posted: Thu May 14, 2020 06:03 PM
Hola Leandro,

Muchas gracias por responder.

He modificado tu linea y ya funciona, mil gracias.

Muchos Saludos

Antonio.

Dejo el codigo.

Code (fw): Select all Collapse
oBrw1:aCols[1]:bClrStd      = {|| {CLR_BLACK,colorE( aCodigos,oBrw1:nArrayAt ) }  }   <== Aqui solo envio el Array y la fila de Xbrowse.


Function colorE(aCodigoos,valor)
    ?aa:=aCodigos[valor][9]       <== Aqui saco el elemento de necesito
        IF aa=="N"
            Return nRGB(139,139,139) //gris oscuro
        ELSEIF aa=="S"
            Return nRGB(0,210,0) //verde oscuro
        ELSE
            Return nRGB(0,120,215) //Azul Defecto
        ENDIF
FWH 22.10 - HARBOUR - PELLES C

Continue the discussion