Mostrar a linha do grid em vermelho se for 0

Delphi

04/01/2008

Bom,
estou fazendo dessa maneira para que quando nessa coluna for 0 mostrar a linha em vermelho, mas não está funcinando, alguém poderia me ajudar?

      if dbglan.Fields[5].AsString = ´0´ Then
         Begin
            dbglan.Canvas.Font.Color:= clred
         End
      Else
         Begin
            dbglan.Canvas.Font.Color:= clBlack ;
         End;



Robinhocne

Robinhocne

Curtidas 0

Respostas

Devmedia

Devmedia

04/01/2008

Amigo robinhocne.
Tudo bom cara?

Tente isto:
If Column.Field = DM.ClientDataSetGrid.FieldByName(´EM_ESTOQUE´) then
   Begin
   If DM.ClientDataSetGrid.FieldByName(´EM_ESTOQUE´).AsString <= ´0´ then
      Begin
         DBGridProdutos.Canvas.Font.Style := DBGridProdutos.Canvas.Font.Style + [fsbold];
         DBGridProdutos.Canvas.Font.Color := clRed;
         DBGridProdutos.DefaultDrawDataCell(rect,Column.Field,state);
      end;
   end;



Se não funcionar. Dá um grito aqui de volta.
Um abraço.
Att.


GOSTEI 0
Picyka

Picyka

04/01/2008

Amigo robinhocne. Tudo bom cara? Tente isto:
If Column.Field = DM.ClientDataSetGrid.FieldByName(´EM_ESTOQUE´) then
   Begin
   If DM.ClientDataSetGrid.FieldByName(´EM_ESTOQUE´).AsString <= ´0´ then
      Begin
         DBGridProdutos.Canvas.Font.Style := DBGridProdutos.Canvas.Font.Style + [fsbold];
         DBGridProdutos.Canvas.Font.Color := clRed;
         DBGridProdutos.DefaultDrawDataCell(rect,Column.Field,state);
      end;
   end;
Se não funcionar. Dá um grito aqui de volta. Um abraço. Att.

no DrawColumnCell do dbgrid
tente assim que eu tenhu certeza q funciona
If dmc.ClientDataSetLocReferenciaQTDE_ESTOQUE.AsInteger <= DM.ClientDataSetReferenciaEST_MINIMO.AsInteger then
begin
Dbgrid1.Canvas.Font.Color:= clRed; // coloque aqui a cor desejada
Dbgrid1.DefaultDrawDataCell(Rect, DBGrid1.Fields[Datacol], State);


GOSTEI 0
Robinhocne

Robinhocne

04/01/2008

Amigos eu não uso clientdataset para a conexão do banco de dados, uso apenas tres componentes da InterBase

IbTransaction
IbDataBase
IbQuery

? :shock:


GOSTEI 0
Edilcimar

Edilcimar

04/01/2008

veja este tópico que eu coloquei, talvez te ajude
http://forum.devmedia.com.br/viewtopic.php?t=52587&highlight=cor+dbgrid


GOSTEI 0
Devmedia

Devmedia

04/01/2008

Amigo robinhocne.
Tudo bom cara?

Olha, na minha resposta anterior esqueci de mencionar para voce implementar este codigo no seu DrawCollumnCell do DBGrid. No Codigo que lhe passei, segue:

If Column.Field = DM.ClientDataSetGrid.FieldByName(´EM_ESTOQUE´) then 
   Begin 
   If DM.ClientDataSetGrid.FieldByName(´EM_ESTOQUE´).AsString <= ´0´ then 
      Begin 
         DBGridProdutos.Canvas.Font.Style := DBGridProdutos.Canvas.Font.Style + [fsbold]; 
         DBGridProdutos.Canvas.Font.Color := clRed; 
         DBGridProdutos.DefaultDrawDataCell(rect,Column.Field,state); 
      end; 
   end; 


Voce somente tem que alterar [color=blue:57088c0b5a]DM.ClientDataSetGrid.FieldByName(´EM_ESTOQUE´)[/color:57088c0b5a] referenciamento a sua forma de conexão com a tabela e o campo, normalmente como voce utiliza o IBQuery.

Ahh e o nome do DBGrid tambem.

Teste, que certeza de funcionar.
Qualquer coisa, retorna um grito aqui.
Um abraço.
Att.


GOSTEI 0
POSTAR