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
Re: Como Cambiar el Color de una Celda en Xbrowse
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 ]
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
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
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