Leurimar,

É chato de fazer, mas depois que você pega a manha se torna fácil, vou
te mandar o codigo que uso aqui e vc implementa! Qualquer dúvida entra
em contato.

Criamos um class com o seguinte código

//nome do arquivo: RenderDatagrid.as

//controls é minha pasta, vc pode colocar onde quiser mas altere aqui
caso a pasta seja diferente blz?
package controls
{


import flash.events.Event;
import mx.controls.DataGrid;
import mx.controls.Label;
import mx.controls.dataGridClasses.*;

public class RenderDatagrid extends Label {

public function RenderDatagrid():void {

  addEventListener(Event.RENDER, renderListener);
}

public function styleIt() : Boolean {
  return false;
}

public function styleTrue() : void {
}

public  function styleFalse() : void {
}

public  function styleNormal() : void {
}


protected function renderListener(event:Event) : void {
  if (listData != null) {
      var grid:DataGrid = DataGrid(DataGridListData(listData).owner);
      if (!grid.isItemHighlighted(data) && grid.selectedItem != data)
{
          if (styleIt()) {
              styleTrue();
          } else {
              styleFalse();
          }
      } else {
          styleNormal();
      }
  }

}
}
}
//final do arquivo RenderDatagrid.as

//criamos um novo class
//nome do arquivo: TesteRenderer.as


//controls é minha pasta, vc pode colocar onde quiser mas altere aqui
caso a pasta seja diferente blz?
package controls
{

import mx.controls.dataGridClasses.*;

public class TestRenderer extends RenderDatagrid{

  public override function styleIt() : Boolean {
  //essa linha vc deve mudar o cTipoLan é o  que estou monitorando ou
seja a que recebe se foi credito ou debito ai é
  //so alterar o cTipoLan lembrando que o cTipoLan é o nosso dataField
da nossa coluna do grid
    return data.cTipoLan == "CRÉDITO";
  }

  //as cores ja estao certas, azul neste caso
  public override function styleTrue() : void {
    this.opaqueBackground = 0x6699FF;
  }

  //as cores ja estao certas, vermelho neste caso
  public  override function styleFalse() : void {
    this.opaqueBackground = 0xFF6666;

  }

  public  override function styleNormal() : void {
    this.opaqueBackground = null;

  }

}
}
//final do arquivo TestRenderer.as

//criamos nosso arquivo mxml que vai conter o grid vou usar
TitleWindow, mas vc pode usar o que quiser, canvas, aplicativo vc //
escolhe

nome do arquivo dataGrid.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow
        xmlns:mx="http://www.adobe.com/2006/mxml";
        layout="absolute" width="584" height="350"
        title="EXEMPLO DATAGRID" autoLayout="true"
        horizontalScrollPolicy="auto" verticalScrollPolicy="auto"
        cornerRadius="10" borderColor="#0303FD" color="#FFFFFF"
        fontWeight="bold" fontSize="10" themeColor="#B0BDFB"
        //NAO ESQUECE DE PUXAR OS ARQUIVOS QUE CRIOU NO MEU CASO USEU
"XMLNS:NS2.... E POR AI VAI"
        backgroundAlpha="0.7" alpha="1.0" xmlns:ns2="controls.*">

        <mx:DataGrid rollOverColor="0xff9900" selectionColor="0xff6600"
x="10" y="10" id="datagridRegistros" width="544"
dataProvider="{COLOQUE SEU DATA PROVIDER AQUI}" height="300">
        <mx:columns>

//ESSA COLUNA E AQUI VOU FICAR MONITORANDO ENTAO ELA É A PRIMEIRA, MAS
DETALHE ESSA COLUNA NAO APARECE NO GRID COLOQUEI ELA COM
//VISIBLE="FALSE", VC ESCOLHE O QUE FAZER NO FINAL FAÇO O INTEM
RENDERER
        <mx:DataGridColumn headerText="Tipo Lan.:" width="60" visible="false"
dataField="cTipoLan" itemRenderer="controls.TestRenderer"/>


//AI DEPOIS O LANCE É O SEGUINTE CADA LINHA DA COLUNA QUE VC QUER
COLORIR VC COLOCA OS CODIGO ABAIXO COMO ABAIXO AI VOU SEPARAR //AS
COLUNAS PRA VC ENTENDER MELHOR
        <mx:DataGridColumn headerText="Data de Pag.:" width="110"
dataField="cDataPag">
           <ns2:itemRenderer>
             <mx:Component>
               <ns2:TestItemRenderer/>
             </mx:Component>
           </ns2:itemRenderer>
         </mx:DataGridColumn>




        <mx:DataGridColumn headerText="Cliente e Fornecedor:" width="150"
dataField="cCliFor">
           <ns2:itemRenderer>
             <mx:Component>
               <ns2:TestItemRenderer/>
             </mx:Component>
           </ns2:itemRenderer>
         </mx:DataGridColumn>



        <mx:DataGridColumn headerStyleName="Datagrid" headerText="Descrição:"
width="120" dataField="cDescricao">
           <mx:itemRenderer>
             <mx:Component>
               <ns2:TestItemRenderer/>
             </mx:Component>
           </mx:itemRenderer>
         </mx:DataGridColumn>



        <mx:DataGridColumn headerStyleName="Datagrid" headerText="Valor:"
width="120" dataField="cValorPag">
           <mx:itemRenderer>
             <mx:Component>
               <ns2:TestItemRenderer/>
             </mx:Component>
           </mx:itemRenderer>
         </mx:DataGridColumn>
        </mx:columns>
     </mx:DataGrid>


</mx:TitleWindow>

//final do arquivo dataGrid.mxml

Leurimar nao cheguei a testar esse datagrid mas acho que ja ajuda a
clarear as ideias, mas se precisar de algo mais estamos ai...
Qualquer coisa é so mandar as duvidas que o pessoal do grupo aqui sao
danados sempre encontramos nossas soluçoes...

abraço e espero ter ajudado.

Atenciosamente,

Luiz Nogueira


On 26 jan, 16:19, Leurimar Lins <[email protected]> wrote:
> Ola pessoal...gostaria de saber...como faco pra mudar a cor de um dado
> dentro do datagrid....por exemplo.....tenho um dataGrid com uma coluna so
> contendo numeros...se um numero for negativo...quero q fique em
> vermelho....agradeço qualquer ajuda.
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a