Estou com um probleminha que não estou conseguindo resolver.
Tenho dois DBGrids onde no 'Dbgrid1' coloco as contas e no 'Dbgrid2' as parcelas das mesmas e desta forma atualizo as cores conforme baixa nas contas e parcelas.
Digamos que para o 'Dbgrid1' uso o DM.qcontasareceber e no 'Dbgrid2' uso o DM.qparcelasR.
Preciso que as contas vencendo no dia atual fiquem conforme abaixo.
//A Pagar Hojeelseif(dm.qcontasreceberPROXIMOPAGAMENTO.Value= date) then
begin
DBGrid1.Canvas.Brush.Color:= clGray;DBGrid1.Canvas.Font.Color:= clBlack;
end
porém preciso puxar mais um campo para validação do DM.qparcelasR mais ou menos assim
//A Pagar Hoje
else if (dm.qcontasreceberPROXIMOPAGAMENTO.Value = date) and
(dm.qparcelas_RContaFinalizada.Value = 'Não') then
begin
DBGrid1.Canvas.Brush.Color := clGray;
DBGrid1.Canvas.Font.Color := clBlack;
end
porém quando coloco desta forma acima não muda a cor do grid como se não reconhecesse o comando.
Alguém pode me ajudar?
Segue abaixo todo o código de pintura para quem interessar!!!
Todos os demais códigos estão todos funcionando!!!
procedure Tfrm_ContasAReceber.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
// Selecionado
if (gdSelected in State) or (gdFocused in State) then
Begin
DBGrid1.Canvas.Brush.Color := clBlue;
DBGrid1.Canvas.Font.Color := clWhite;
End
// Sem gerar Parcela
Else if (dm.qcontasreceberESTATUS.Value = 'QUITADO') and
(dm.qContasreceberULTIMAPARCELA.Value = 0) then
begin
DBGrid1.Canvas.Brush.Color := clBlack;
DBGrid1.Canvas.Font.Color := clWhite;
end
// Pago
Else if (dm.qContasreceberESTATUS.Value = 'QUITADO') then
begin
DBGrid1.Canvas.Brush.Color := clYellow;
DBGrid1.Canvas.Font.Color := clBlack;
end
//A Pagar Hoje
else if (dm.qcontasreceberPROXIMOPAGAMENTO.Value = date) then
begin
DBGrid1.Canvas.Brush.Color := clGray;
DBGrid1.Canvas.Font.Color := clBlack;
end
// Vencida
else if (dm.qcontasreceberPROXIMOPAGAMENTO.Value < date) and
(dm.qcontasreceberESTATUS.Value = 'PENDENTE') then
begin
DBGrid1.Canvas.Brush.Color := clRed;
DBGrid1.Canvas.Font.Color := clWhite;
end
// A Pagar
else if (dm.qContasreceberPROXIMOPAGAMENTO.Value > date)and
(dm.qcontasreceberESTATUS.Value = 'PENDENTE') then
begin
DBGrid1.Canvas.Brush.Color := clGreen;
DBGrid1.Canvas.Font.Color := clWhite;
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Pergunta
mmousinho
Bom dia.
Estou com um probleminha que não estou conseguindo resolver.
Tenho dois DBGrids onde no 'Dbgrid1' coloco as contas e no 'Dbgrid2' as parcelas das mesmas e desta forma atualizo as cores conforme baixa nas contas e parcelas.
Digamos que para o 'Dbgrid1' uso o DM.qcontasareceber e no 'Dbgrid2' uso o DM.qparcelasR.
Preciso que as contas vencendo no dia atual fiquem conforme abaixo.
porém preciso puxar mais um campo para validação do DM.qparcelasR mais ou menos assim
//A Pagar Hoje else if (dm.qcontasreceberPROXIMOPAGAMENTO.Value = date) and (dm.qparcelas_RContaFinalizada.Value = 'Não') then begin DBGrid1.Canvas.Brush.Color := clGray; DBGrid1.Canvas.Font.Color := clBlack; end
porém quando coloco desta forma acima não muda a cor do grid como se não reconhecesse o comando.
Alguém pode me ajudar?
Segue abaixo todo o código de pintura para quem interessar!!!
Todos os demais códigos estão todos funcionando!!!
procedure Tfrm_ContasAReceber.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin // Selecionado if (gdSelected in State) or (gdFocused in State) then Begin DBGrid1.Canvas.Brush.Color := clBlue; DBGrid1.Canvas.Font.Color := clWhite; End // Sem gerar Parcela Else if (dm.qcontasreceberESTATUS.Value = 'QUITADO') and (dm.qContasreceberULTIMAPARCELA.Value = 0) then begin DBGrid1.Canvas.Brush.Color := clBlack; DBGrid1.Canvas.Font.Color := clWhite; end // Pago Else if (dm.qContasreceberESTATUS.Value = 'QUITADO') then begin DBGrid1.Canvas.Brush.Color := clYellow; DBGrid1.Canvas.Font.Color := clBlack; end //A Pagar Hoje else if (dm.qcontasreceberPROXIMOPAGAMENTO.Value = date) then begin DBGrid1.Canvas.Brush.Color := clGray; DBGrid1.Canvas.Font.Color := clBlack; end // Vencida else if (dm.qcontasreceberPROXIMOPAGAMENTO.Value < date) and (dm.qcontasreceberESTATUS.Value = 'PENDENTE') then begin DBGrid1.Canvas.Brush.Color := clRed; DBGrid1.Canvas.Font.Color := clWhite; end // A Pagar else if (dm.qContasreceberPROXIMOPAGAMENTO.Value > date)and (dm.qcontasreceberESTATUS.Value = 'PENDENTE') then begin DBGrid1.Canvas.Brush.Color := clGreen; DBGrid1.Canvas.Font.Color := clWhite; end; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end;
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.