Calculos em campo data do dbgrid
Prezados Amigos, estou tenho na minha tabela (mysql) 2 campos: data_entrada e data_previsao. gostaria de pegar essas duas informações e seguir a seguinte logica:
1) Caso a data_entrada ultrapasse 'x' dias a linha do dbgrid deve ficar de uma determinada cor.
2) Caso a data_previsao seja alcançada a linha do dbgrid deve ficar de outra cor.
Gostaria, se nao for abusar, de uma explicação da funcao que for postada como ajuda para que eu possa entender a logica do funcionamento de como o dbgrid manipula os dados e de como posso futuramente 'pegar' uma informação precisa em qualquer celula do dbgrid.
Obrigado a todos e um Feliz Natal para toda a comunidade.
1) Caso a data_entrada ultrapasse 'x' dias a linha do dbgrid deve ficar de uma determinada cor.
2) Caso a data_previsao seja alcançada a linha do dbgrid deve ficar de outra cor.
Gostaria, se nao for abusar, de uma explicação da funcao que for postada como ajuda para que eu possa entender a logica do funcionamento de como o dbgrid manipula os dados e de como posso futuramente 'pegar' uma informação precisa em qualquer celula do dbgrid.
Obrigado a todos e um Feliz Natal para toda a comunidade.
Lammer Ltda
Curtidas 0
Respostas
Joel Rodrigues
25/12/2013
Olá, neste momento está um pouco complicado pra eu explicar direitinho como funciona, mas veja esse link, talvez lhe ajude: Coloring DBGrid.
Feliz Natal e, desde já, um ótimo Ano Novo.
Feliz Natal e, desde já, um ótimo Ano Novo.
GOSTEI 0
Lammer Ltda
25/12/2013
Olá, neste momento está um pouco complicado pra eu explicar direitinho como funciona, mas veja esse link, talvez lhe ajude: Coloring DBGrid.
Feliz Natal e, desde já, um ótimo Ano Novo.
Feliz Natal e, desde já, um ótimo Ano Novo.
Muito Bom o Texto!!! Muito Bom Mesmo!!! Obrigado, já consegui colorir o dbgrib.
Um detalhe: o codigo
procedure TForm1.DBGrid1DrawColumnCell
(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if Table1.FieldByName('Salary').AsCurrency>36000 then
DBGrid1.Canvas.Font.Color:=clMaroon;
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Column, State);
end;Como faço para adapta-lo para verificar se a data do campo é menor ou maior que a data atual?
GOSTEI 0
Lammer Ltda
25/12/2013
Olá, neste momento está um pouco complicado pra eu explicar direitinho como funciona, mas veja esse link, talvez lhe ajude: Coloring DBGrid.
Feliz Natal e, desde já, um ótimo Ano Novo.
Feliz Natal e, desde já, um ótimo Ano Novo.
Muito Bom o Texto!!! Muito Bom Mesmo!!! Obrigado, já consegui colorir o dbgrib.
Um detalhe: o codigo
procedure TForm1.DBGrid1DrawColumnCell
(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if Table1.FieldByName('Salary').AsCurrency>36000 then
DBGrid1.Canvas.Font.Color:=clMaroon;
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Column, State);
end;Como faço para adapta-lo para verificar se a data do campo é menor ou maior que a data atual?
Resolvido:
procedure TfrmPrincipal.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (dmCadOS.qryLancOS.FieldByName('previsao').AsDateTime < Date) then
begin
DBGrid1.Canvas.Brush.Color:= RGB(255,0,0);
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end
else
begin
DBGrid1.Canvas.Brush.Color:= RGB(0,255 ,0);
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end
end;
GOSTEI 0
Joel Rodrigues
25/12/2013
Opa, eu já vinha ajudar a adaptar o código, mas show de bola que você conseguiu.
Grande abraço e bons códigos.
Grande abraço e bons códigos.
GOSTEI 0