GARANTIR DESCONTO

Fórum Colorir as fontes #268262

11/02/2005

0

Criei uma rotina que no formulário deixa em cor preta as fontes do registro cuja data de vencimento não se encontra em atraso, deixa na cor verde as datas anteriores ao vencimento e deixa em cor vermelha as datas iguais ou superiores as datas de vencimento.
Usei um Datasource (DataChange).

Mas não consegui fazer isso no DBGrid. Se alguém puder me ajudar, ficarei agradecida.


Espero ajuda de todos, obrigada.


Anjinho Loiro

Anjinho Loiro

Responder

Posts

11/02/2005

Massuda

Talvez seja útil para você: [url=http://forum.clubedelphi.net/viewtopic.php?t=57109]neste tópico anterior[/url] do fórum, foi utilizado o evento TDBGrid.OnDrawColumnCell para usar um fonte vermelho para débitos.


Responder

Gostei + 0

13/02/2005

Edilcimar

isto aqui pega o estoque de 4 lojas e coloca a coluna com cor diferente de acordo com a quantidade em estoque
If Filial = 4 then
Begin
Estoque1 := Query1.FieldByName(´ESTOQUE1´).AsFloat;
Estoque2 := Query1.FieldByName(´ESTOQUE2´).AsFloat;
Estoque3 := Query1.FieldByName(´ESTOQUE3´).AsFloat;
Estoque4 := Query1.FieldByName(´ESTOQUE4´).AsFloat;
If (Estoque1 <= 0) then
Begin
DBGrid2.Columns[5].Font.Color := clRed;
DBGrid2.Columns[5].Color := $00DFFFFF;
End
Else If (Estoque1 > 0) then
Begin
DBGrid2.Columns[5].Font.Color := clBlack;
DBGrid2.Columns[5].Color := clWhite;
End;
If (Estoque2 <= 0) then
Begin
DBGrid2.Columns[6].Font.Color := clRed;
DBGrid2.Columns[6].Color := $00DFFFFF;
End
Else If (Estoque2 > 0) then
Begin
DBGrid2.Columns[6].Font.Color := clBlack;
DBGrid2.Columns[6].Color := clWhite;
End;
If (Estoque3 <= 0) then
Begin
DBGrid2.Columns[7].Font.Color := clRed;
DBGrid2.Columns[7].Color := $00DFFFFF;
End
Else If (Estoque3 > 0) then
Begin
DBGrid2.Columns[7].Font.Color := clBlack;
DBGrid2.Columns[7].Color := clWhite;
End;
If (Estoque4 <= 0) then
Begin
DBGrid2.Columns[8].Font.Color := clRed;
DBGrid2.Columns[8].Color := $00DFFFFF;
End
Else If (Estoque4 > 0) then
Begin
DBGrid2.Columns[8].Font.Color := clBlack;
DBGrid2.Columns[8].Color := clWhite;
End;
If (Estoque1 > 0) and (Estoque2 > 0) and (Estoque3 > 0) and
(Estoque4 > 0) then
Begin
DBGrid2.Columns[2].Color := clWhite;
DBGrid2.Columns[2].Font.Color := $0000AF00;
End
Else If (Estoque1 > 0) or (Estoque2 > 0) or (Estoque3 > 0) or
(Estoque4 > 0) then
Begin
DBGrid2.Columns[2].Color := clWhite;
DBGrid2.Columns[2].Font.Color := $0000BFFF;
End
Else
Begin
DBGrid2.Columns[2].Color := clWhite;
DBGrid2.Columns[211].Font.Color := clRed;
End;
If Estoque1 > 0 then
Begin;
DBGrid2.Columns[1].Color := clWhite;
DBGrid2.Columns[1].Font.Color := $00000000;
End
Else
DBGrid2.Columns[1].Font.Color := $00000001;
Edit1.Font.Color := clBlack;
Edit1.Brush.Color := clWhite;
End
Else If Filial = 3 then
Begin
Estoque1 := Query2.FieldByName(´ESTOQUE1´).AsFloat;
Estoque2 := Query2.FieldByName(´ESTOQUE2´).AsFloat;
Estoque3 := Query2.FieldByName(´ESTOQUE3´).AsFloat;
If (Estoque1 <= 0) then
Begin
DBGrid2.Columns[5].Font.Color := clRed;
DBGrid2.Columns[5].Color := $00DFFFFF;
End
Else If (Estoque1 > 0) then
Begin
DBGrid2.Columns[5].Font.Color := clBlack;
DBGrid2.Columns[5].Color := clWhite;
End;
If (Estoque2 <= 0) then
Begin
DBGrid2.Columns[6].Font.Color := clRed;
DBGrid2.Columns[6].Color := $00DFFFFF;
End
Else If (Estoque2 > 0) then
Begin
DBGrid2.Columns[6].Font.Color := clBlack;
DBGrid2.Columns[6].Color := clWhite;
End;
If (Estoque3 <= 0) then
Begin
DBGrid2.Columns[7].Font.Color := clRed;
DBGrid2.Columns[7].Color := $00DFFFFF;
End
Else If (Estoque3 > 0) then
Begin
DBGrid2.Columns[7].Font.Color := clBlack;
DBGrid2.Columns[7].Color := clWhite;
End;
If (Estoque1 > 0) and (Estoque2 > 0) and (Estoque3 > 0) then
Begin
DBGrid2.Columns[2].Color := clWhite;
DBGrid2.Columns[2].Font.Color := $0000AF00;
End
Else If (Estoque1 > 0) or (Estoque2 > 0) or (Estoque3 > 0) then
Begin
DBGrid2.Columns[2].Color := clWhite;
DBGrid2.Columns[2].Font.Color := $0000BFFF;
End
Else
Begin
DBGrid2.Columns[2].Color := clWhite;
DBGrid2.Columns[2].Font.Color := clRed;
End;
If Estoque1 > 0 then
Begin;
DBGrid2.Columns[1].Color := clWhite;
DBGrid2.Columns[1].Font.Color := $00000000;
End
Else
DBGrid2.Columns[1].Font.Color := $00000001;
Edit1.Font.Color := clBlack;
Edit1.Brush.Color := clWhite;
End
Else If Filial = 2 then
Begin
Estoque1 := Query3.FieldByName(´ESTOQUE1´).AsFloat;
Estoque2 := Query3.FieldByName(´ESTOQUE2´).AsFloat;
If (Estoque1 <= 0) then
Begin
DBGrid2.Columns[5].Font.Color := clRed;
DBGrid2.Columns[5].Color := $00DFFFFF;
End
Else If (Estoque1 > 0) then
Begin
DBGrid2.Columns[5].Font.Color := clBlack;
DBGrid2.Columns[5].Color := clWhite;
End;
If (Estoque2 <= 0) then
Begin
DBGrid2.Columns[6].Font.Color := clRed;
DBGrid2.Columns[6].Color := $00DFFFFF;
End
Else If (Estoque2 > 0) then
Begin
DBGrid2.Columns[6].Font.Color := clBlack;
DBGrid2.Columns[6].Color := clWhite;
End;
If (Estoque1 > 0) and (Estoque2 > 0) then
Begin
DBGrid2.Columns[2].Color := clWhite;
DBGrid2.Columns[2].Font.Color := $0000AF00;
End
Else If (Estoque1 > 0) or (Estoque2 > 0) then
Begin
DBGrid2.Columns[2].Color := clWhite;
DBGrid2.Columns[2].Font.Color := $0000BFFF;
End
Else
Begin
DBGrid2.Columns[2].Color := clWhite;
DBGrid2.Columns[2].Font.Color := clRed;
End;
If Estoque1 > 0 then
Begin;
DBGrid2.Columns[1].Color := clWhite;
DBGrid2.Columns[1].Font.Color := $00000000;
End
Else
DBGrid2.Columns[1].Font.Color := $00000001;
Edit1.Font.Color := clBlack;
Edit1.Brush.Color := clWhite;
End;


Responder

Gostei + 0

17/02/2005

Anjinho Loiro

A dica que vc me forneceu serviu como uma luva, porém, percebi que nos campos do tipo moeda, o formato é perdido.
Existe algo que eu possa fazer para que o formato permaneça???

Obrigado,


Responder

Gostei + 0

20/02/2005

Edilcimar

note que a formatação não é modificada, apenas a cor, portanto se está havendo algum problema com a mesma tente colocar no columns[x] do dbgrid a formatação que vc quizer, o meu funciona normalmente


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar