Como Cambiar el Color de una Celda en Xbrowse

Como Cambiar el Color de una Celda en Xbrowse

Postby remtec » Thu May 14, 2020 5: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
remtec
 
Posts: 717
Joined: Fri May 12, 2017 2:50 pm

Re: Como Cambiar el Color de una Celda en Xbrowse

Postby leandro » Thu May 14, 2020 5:36 pm

Yo lo hago de la siguiente manera:
Code: Select all  Expand view


......

    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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1481
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Como Cambiar el Color de una Celda en Xbrowse

Postby remtec » Thu May 14, 2020 6:03 pm

Hola Leandro,

Muchas gracias por responder.

He modificado tu linea y ya funciona, mil gracias.

Muchos Saludos

Antonio.

Dejo el codigo.

Code: Select all  Expand view

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
remtec
 
Posts: 717
Joined: Fri May 12, 2017 2:50 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 82 guests