Download - Alterar Cor Da Linha Do GRID

Transcript
Page 1: Alterar Cor Da Linha Do GRID

Alterar cor da linha do GRIDby Administrador - http://www.blogadvpl.com/2012/10/alterar-cor-da-linha-do-grid/

Alterar cor da linha do GRID

Esta é uma dica bem simples de como podemos colorir a linha do grid, dependendo de sua lógica, cada linhapode ter uma cor diferente.Essa dica serve tanto para MsNewGetDados() quanto TcBrowse, não testei em outros componentes de grid.

Veja exemplo:

1º Monte seu grid, no exemplo utilizo o TcBrowse

User Function SuaTela()DEFINE MSDIALOG oDlg TITLE "Pedidos não atendidos" FROM 0,0 TO nMargInf - 50,nMargDir -50 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("ST" , {|| aItens[oList:nAt,02]},"@BMP",,,,,.T.,.F.,,,,.F., ) ) oList:AddColumn(TCColumn():New("Pedido" , {|| aItens[oList:nAt,03]},"@!",,,"CENTER", 040,.F.,.F.,,{|| .F. },,.F., ) )

página 1 / 3

Page 2: Alterar Cor Da Linha Do GRID

Alterar cor da linha do GRIDby Administrador - http://www.blogadvpl.com/2012/10/alterar-cor-da-linha-do-grid/

oList:AddColumn(TCColumn():New("Cliente" , {|| aItens[oList:nAt,04]},"@!",,,"LEFT", 040,.F.,.F.,,,,.F., ) ) oList:AddColumn(TCColumn():New("Nome" , {|| aItens[oList:nAt,05]},"@!",,,"LEFT", 080,.F.,.F.,,,,.F., ) ) oList:AddColumn(TCColumn():New("UF" , {|| aItens[oList:nAt,06]},"@!",,,"CENTER", 010,.F.,.F.,,,,.F., ) ) oList:AddColumn(TCColumn():New("Cidade" , {|| aItens[oList:nAt,07]},"@!",,,"LEFT", 060,.F.,.F.,,,,.F., ) ) oList:AddColumn(TCColumn():New("Ped.Cliente" , {|| aItens[oList:nAt,08]},"@!",,,"CENTER", 040,.F.,.F.,,,,.F., ) ) oList:AddColumn(TCColumn():New("Item" , {|| aItens[oList:nAt,09]},"@!",,,"LEFT", 010,.F.,.F.,,,,.F., ) ) oList:AddColumn(TCColumn():New("Produto" , {|| aItens[oList:nAt,10]},"@!",,,"LEFT", 050,.F.,.F.,,,,.F., ) ) oList:AddColumn(TCColumn():New("Descricao" , {|| aItens[oList:nAt,11]},"@!",,,"LEFT", 090,.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 oList:lUseDefaultColors := .F. //Se estiver usando o MsNewGetDados() é necessário colocar assim:>> oList:oBrowse:lUseDefaultColors := .F. fItens()ACTIVATE MSDIALOG oDlg ON INIT EnchoiceBar(oDlg,{||oDlg:End()},{||oDlg:End()},,aBotoes) CENTERED

Return

2º Agora monto o array e faço a validação da cor

Static Function fItens() //Sua consulta() While !Eof() AADD(aItens,.f.,oCor,Alltrim((cTmp)->(PEDIDO)),; Alltrim((cTmp)->(CLIENTE))+'-'+(cTmp)->(LOJA),; Alltrim((cTmp)->(NOME)),; (cTmp)->(ESTADO),; Alltrim((cTmp)->(CIDADE)),; Alltrim((cTmp)->(PEDCLI)),; Alltrim((cTmp)->(ITEM)),; Alltrim((cTmp)->(PRODUTO)),; Alltrim((cTmp)->(DESCRICAO))}) dbSelectArea(cTmp) dbSkip() EndDo dbCloseArea() oList:SetArray(aItens)

página 2 / 3

Page 3: Alterar Cor Da Linha Do GRID

Alterar cor da linha do GRIDby Administrador - http://www.blogadvpl.com/2012/10/alterar-cor-da-linha-do-grid/

if len(aItens) > 0 //Se tiver registro valide a cor da linha oList:SetBlkBackColor({|| GETDCLR(oList:nAt)}) //Se estiver usando o MsNewGetDados() //oList:oBrowse:SetBlkBackColor({|| GETDCLR(oList:nAt)}) Endif oList:GoTop() oList:Refresh(.t.) oList:SetFocus()Return

3º Na função onde será valido a cor da linha, você informa as condições e as cores correspondentes

Static Function GETDCLR(nLinha) Local nRet := 16777215 if !Empty(aItens[nLinha,3]) //neste exemplo, se tiver conteudo na 3ª coluna pinte de cinza nRet := 6579300 Else nRet := 16777215 EndifReturn nRet

Pronto, agora você tem um grid com linhas coloridas, é interessante quando você quer destacar registros, comopor exemplo deixar em vermelho os registro que tem saldo negativo.

Acesse nosso blog www.blogadvpl.com

Powered by TCPDF (www.tcpdf.org)

página 3 / 3