Creo que tendrías que poner el color según el valor mas chico para cada caso
Suponte que tienes la tabla con los siguientes campos: data1, data2, data3, valor1, valor2, valor3, valor4 , donde valor1 a valor4 son los que quieres comparar
- Code: Select all Expand view
#include "FiveWin.ch"
//----------------------------------------------------------------//
function Main()
local oDlg, oLbx
USE Data
DEFINE DIALOG oDlg FROM 5,10 TO 24, 86 ;
TITLE "Valor minimo en verde"
@ 1, 0.50 XBROWSE oLbx ALIAS "DATA" AUTOCOLS SIZE 285, 95 OF oDlg
WITH OBJECT oLbx
:aCols[4]:bClrStd := {|| {CLR_BLACK,colorMin(4) } }
:aCols[5]:bClrStd := {|| {CLR_BLACK,colorMin(5) } }
:aCols[6]:bClrStd := {|| {CLR_BLACK,colorMin(6) } }
:aCols[7]:bClrStd := {|| {CLR_BLACK,colorMin(7) } }
:CreateFromCode()
END
@ 10, 18 BUTTON "&Cancel" OF oDlg SIZE 40, 12 ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTERED
return nil
STATIC FUNCTION ColorMin(n)
LOCAL nColor := CLR_WHITE
DO CASE
CASE n = 4
IF(data->valor1 < data->valor2 .and. data->valor1 < data->valor3 .and. data->valor1 < data->valor4 )
nColor := CLR_GREEN
ENDIF
CASE n = 5
IF(data->valor2 < data->valor1 .and. data->valor2 < data->valor3 .and. data->valor2 < data->valor4 )
nColor := CLR_GREEN
ENDIF
CASE n = 6
IF(data->valor3 < data->valor1 .and. data->valor3 < data->valor2 .and. data->valor2 < data->valor4 )
nColor := CLR_GREEN
ENDIF
CASE n = 7
IF(data->valor4 < data->valor1 .and. data->valor4 < data->valor3 .and. data->valor4 < data->valor3 )
nColor := CLR_GREEN
ENDIF
ENDCASE
RETURN nColor