Algo interessante que podemos fazer quando criamos um grid em nossa customização, é colorir as linhas, isso as vezes ajuda a identificar melhor um determinado problema como por exemplo, linhas que exibem valores, e quando o valor estiver negativo, colorimos ele de vermelho. No exemplo abaixo, vou exemplificar com um simples código como colorir determinadas linhas.
#include "protheus.ch" User Function fCorGrid() //seu codigo DEFINE MSDIALOG oDlg TITLE "Pedidos não atendidos" FROM 0,0 TO 250,500 PIXEL oList := TCBrowse():New(015,005,440,220,,,,oDlg,,,,,,,,,,,,.F.,,.T.,,.F.,,,) oList:AddColumn(TCColumn():New("Lib" , {|| If(aItens[oList:nAt,01],oOk,oNo)},,,,,,.T.,.F.,,,,.F., ) ) oList:AddColumn(TCColumn():New("Pedido" , {|| aItens[oList:nAt,02]},"@!",,,"CENTER", 040,.F.,.F.,,{|| .F. },,.F., ) ) oList:AddColumn(TCColumn():New("Item" , {|| aItens[oList:nAt,03]},"@!",,,"LEFT", 010,.F.,.F.,,,,.F., ) ) oList:AddColumn(TCColumn():New("Produto", {|| aItens[oList:nAt,04]},"@!",,,"LEFT", 050,.F.,.F.,,,,.F., ) ) oList:SetArray(aItens) oList:bWhen := { || Len(aItens) > 0 } //Para que a linha seja colorida conforme a sua escolha é expressamente necessário informar o atributo lUseDefaultColors como falso //Se estiver usando o MsNewGetDados() é necessário colocar assim:>> oList:oBrowse:lUseDefaultColors := .F. oList:lUseDefaultColors := .F. //a propriedade SetBlkBackColor serve para colorir o fundo do grid //criei a função GETDCLR no qual passo a ela a linha posicionada e uma determinada cor. oList:SetBlkBackColor({|| GETDCLR(oList:nAt,8421376)}) //Se estiver usando o MsNewGetDados() //oList:oBrowse:SetBlkBackColor({|| GETDCLR(oList:nAt,8421376)}) oList:Align := CONTROL_ALIGN_ALLCLIENT ACTIVATE MSDIALOG oDlg CENTERED Return Static Function GETDCLR(nLinha,nCor) Local nRet := 16777215 if Empty(aItens[nLinha,3]) //neste exemplo, se tiver conteudo na 3ª coluna pinte-a da cor informada no parametro nRet := nCor ElseIf (aItens[nLinha,2]=="010021") //se na coluna 2 tiver o conteudo informado pinte de outra cor nRet := 4227327 Else nRet := 16777215 Endif Return nRetEspero que tenha sido útil