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
Como Cambiar el Color de una Celda en Xbrowse
- leandro
- Posts: 1770
- Joined: Wed Oct 26, 2005 2:49 pm
- Location: Colombia
- Has thanked: 49 times
- Been thanked: 12 times
- Contact:
Re: Como Cambiar el Color de una Celda en Xbrowse
Yo lo hago de la siguiente manera:
Code: Select all | Expand
......
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 24.09 ] [ xHarbour 64 bits) ]
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 24.09 ] [ xHarbour 64 bits) ]
Re: Como Cambiar el Color de una Celda en Xbrowse
Hola Leandro,
Muchas gracias por responder.
He modificado tu linea y ya funciona, mil gracias.
Muchos Saludos
Antonio.
Dejo el codigo.
Muchas gracias por responder.
He modificado tu linea y ya funciona, mil gracias.
Muchos Saludos
Antonio.
Dejo el codigo.
Code: Select all | Expand
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