En este caso las filas tomarán el mismo color para el mismo valor de identificación de empleado (campo Emp_Id)
loForm = CREATEOBJECT("MiForm")
loForm.SHOW(1)
DEFINE CLASS MiForm AS FORM
DATASESSION = 2
ADD OBJECT MiGrid AS GRID WITH ;
RECORDSOURCE = "Orders", HEIGHT = 400, WIDTH = 400, ANCHOR = 15, ;
READONLY = .T., FONTSIZE = 12, ROWHEIGHT = 24
PROCEDURE LOAD
USE (HOME(2) + "Data\Orders")
ENDPROC
PROCEDURE INIT
THIS.MiGrid.SETALL("DynamicBackColor", "(ThisForm.ColorMe(Orders.Emp_Id, .F.))")
THIS.MiGrid.SETALL("DynamicForeColor", "(ThisForm.ColorMe(Orders.Emp_Id, .T.))")
THIS.WINDOWSTATE = 2
ENDPROC
PROCEDURE ColorMe(tcValue, tlForeColor)
LOCAL lnBackColor, lnForeColor
lnBackColor = BITAND(VAL(SYS(2007,m.tcValue,1,1)), 0x00FFFFFF)
IF NOT m.tlForeColor
RETURN m.lnBackColor
ENDIF
LOCAL lnRed, lnGreen, lnBlue,lnAlpha
lnRed = BITAND(BITRSHIFT(m.lnBackColor,0), 0xFF)
lnGreen = BITAND(BITRSHIFT(m.lnBackColor,8), 0xFF)
lnBlue = BITAND(BITRSHIFT(m.lnBackColor,16), 0xFF)
lnAlpha = (MAX(m.lnRed,m.lnGreen,m.lnBlue) + MIN(m.lnRed,m.lnGreen,m.lnBlue)) / 2
RETURN IIF(m.lnAlpha < 0x80, 0xFFFFFF, 0)
ENDPROC
ENDDEFINE
Fuente: Foxite Forum (http://www.foxite.com/forum)
No hay comentarios.:
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.