Alterar Cor Da Linha Do GRID

3
Alterar cor da linha do GRID by 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 linha pode 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,nMargD ir -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]},"@!",,,"CENTE R", 040,.F.,.F.,,{|| .F. },,.F., ) ) página 1 / 3

Transcript of Alterar Cor Da Linha Do GRID

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