I need some code to color a cell on screen and print, in an xbrowse when there is a value in the cell.
Thanks
Thank you
Harvey
Harvey
I need some code to color a cell on screen and print, in an xbrowse when there is a value in the cell.
Thanks
oBrw:bClrStd := {|| iif( empty( oBrw:aCols[1]:Value() ) ), { CLR_WHITE, CLR_HGRAY }, { CLR_BLACK, getSysColor( 5 ) } ) }
oBrw:bClrSel := { || { CLR_BLACK, GetSysColor( COLOR_INACTIVECAPTION ) } }
oBrw:bClrSelFocus := { || { CLR_BLACK, GetSysColor( COLOR_HIGHLIGHT ) } }FOR I = 1 TO LEN(oBrw:aCols)
oBrw:aCols[I]:bClrStd := {|| {CLR_BLUE, If( DET->SDETAIL, CLR_YELLOW, CLR_WHITE) } }
NEXTFOR I = 1 TO LEN(oBrw:aCols)
oBrw:aCols[I]:bClrStd := {|| {CLR_BLUE, If( DET->SDETAIL, CLR_YELLOW, CLR_WHITE) } }
NEXTFOR I = 1 TO LEN(oBrw:aCols)
oBrw:aCols[I]:bClrStd := {|| {CLR_BLUE, If( nVara-nVarb, CLR_YELLOW, CLR_WHITE) } }
NEXTFOR I = 1 TO LEN(oBrw:aCols)
oBrw:aCols[I]:bClrStd := {|| If( nVara-nVarb, {CLR_BLUE, CLR_YELLOW}, {CLR_BLUE, CLR_WHITE } ) }
NEXThag wrote:I tried this:
FOR I = 1 TO LEN(oBrw:aCols) oBrw:aCols[I]:bClrStd := {|| {CLR_BLUE, If( nVara-nVarb, CLR_YELLOW, CLR_WHITE) } } NEXT
FOR I = 1 TO LEN(oBrw:aCols)
oBrw:aCols[I]:bClrStd := {|| {CLR_BLUE, If( val(eval(oBrw:aCols[i]:bStrData))>500 , CLR_YELLOW, CLR_WHITE) } }
NEXToBrw:aCols[I]:bClrStd := {|| {CLR_BLUE, If( val(eval(oBrw:aCols[i]:bStrData))>500 , CLR_YELLOW, CLR_WHITE) } }

oCol:bClrStd := {|| {CLR_BLUE, If( val(eval(oCol:bStrData))>500 , CLR_YELLOW, CLR_WHITE) } }oBrw:bClrStd := {|| {CLR_BLACK,CLR_WHITE, If( nVara-nVarb > 500, CLR_YELLOW, CLR_WHITE) } }
Thanks for all the help. I have it working to highlight row but not single cell. aCol[] and aRow[] is the problem. How do i get the number of the array elements for these?

#include "FiveWin.ch"
#include "xbrowse.ch"
#define WID 350
#define HGT 200
REQUEST DBFCDX
function Main()
local oDlg, oBrw , oCol, nFor
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-18
USE CUSTOMER NEW SHARED VIA "DBFCDX"
SET ORDER TO TAG FIRST
GO TOP
DEFINE DIALOG oDlg SIZE 2*WID,2*HGT PIXEL FONT oFont
oBrw := TXBrowse():New( oDlg )
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLCELL
oBrw:nColDividerStyle := LINESTYLE_BLACK
oBrw:nRowDividerStyle := LINESTYLE_BLACK
oBrw:lColDividerComplete := .t.
oCol := oBrw:AddCol()
oCol:AddResource( "CLIP" )
oCol:AddResource( "star" )
oCol:bLClickHeader = { | nMRow, nMCol, nFlags, Self | ;
If( ::nHeadBmpNo == 2, ::nHeadBmpNo := 1, ::nHeadBmpNo := 2 ), ::oBrw:Refresh() }
oCol:cHeader := "CLIP"
oCol:nHeadBmpNo := 1
oCol:nHeadBmpAlign := AL_RIGHT
oCol := oBrw:AddCol()
oCol:bStrData := { || _FIELD->First}
oCol:cHeader := "First"
oCol:oDataFont := oFont
oCol := oBrw:AddCol()
oCol:bStrData := { || _FIELD->Last}
oCol:cHeader := "Last"
// ----------- Field-color ----------
oCol:bClrStd := { || IIF( _FIELD->LAST = "Crystal", ;
{ 16777215,128 }, { 16777215, 6534803 } ) }
// -----------------------------------
oCol := oBrw:AddCol()
oCol:AddResource("GREEN")
oCol:AddResource("RED")
oCol:cHeader := "Married"
oCol:bBmpData := { || iif( _FIELD->Married, 1, 2) }
oCol:bStrData := { || iif( _FIELD->Married, "Yes", "No ")}
oCol:bEditValue := { || _FIELD->Married }
oCol:nDataStyle := oCol:DefStyle( AL_RIGHT, .T.)
oCol:nEditType := EDIT_LISTBOX
oCol:aEditListTxt := { "Yes", "No"}
oCol:aEditListBound := { .t., .f. }
oCol:bOnPostEdit := {|o, v| (DBRLOCK(), _FIELD->Married := v, DBUNLOCK() ) }
oBrw:SetRDD()
oBrw:CreateFromCode()
ACTIVATE DIALOG oDlg CENTER ON INIT ( oDlg:oClient := oBrw, oDlg:Resize() )
CLOSE DATABASE
RETURN NIL
Uwe and all:
My issue seems to be that I'm not using oCol:addCol() to set up colums. I'm using ADD COLUMN for each column and the oCol:bClrStd doesnt work. I'm using oBrw:bClrstd which places the color on the entire row. Is there a way to have it color the cell when using ADD COLUMN?
ADD COLUMN oCol TO oBrw...
oCol:bClrstd:=...