Como Cambiar el Color de una Celda en Xbrowse

Post Reply
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Como Cambiar el Color de una Celda en Xbrowse

Post by remtec »

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
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: Como Cambiar el Color de una Celda en Xbrowse

Post by leandro »

Yo lo hago de la siguiente manera:

Code: Select all


......

    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 ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Como Cambiar el Color de una Celda en Xbrowse

Post by remtec »

Hola Leandro,

Muchas gracias por responder.

He modificado tu linea y ya funciona, mil gracias.

Muchos Saludos

Antonio.

Dejo el codigo.

Code: Select all

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

 
Post Reply