• 0
Sign in to follow this  
robinhocne

(Resolvido) Pintar linha do Dbgrid...Se ele for data menor...

Question

Estava tentado faz assim, que ele pegasse a fields [2] que é onde mostra os vencimentos das parcelas e checar se for menor que a data corrente e me mostre em marrom essa linha, mas também não pode mostrar a linha emmarron se se a data de pagamento estivesse preenchida, que no Field [4] que é o campo onde quando estiver pago mostra a data do dia de pagamento

Acho que seria mais ou menos assim:;;;;;

if dbglan.Fields[2].AsDateTime <= Current_Date Then
                 iF dbglan.Fields[4].AsDateTime ????? then 
                    Begin
                       dbglan.Canvas.Font.Color:= clMaroon;
                    End;

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0

eu não consegui entrar nesse tópico que você me passou, pois estou acessando do meu servico e aqui tem muitas coisas que é bloqueada, principalmente tudo referido a gage, show, etc...

tem como você me especificar esse codigo aqui para eu dar uma olhada......

Share this post


Link to post
Share on other sites
  • 0
Acho que o Micheus já respondeu algo muito parecido para voce e no forum existem outros topicos abordando o mesmo assunto... tenta este;

http://scriptbrasil.com.br/forum/index.php...=DBGrid+and+cor

abraço

não consegui achar jhonas em nehum desse topicos que você me passou

Share this post


Link to post
Share on other sites
  • 0
É praticamente igual a este seu post... é só fazer as modificações necessarias
Jhonas, parece-me que o problema do robinhocne não é mais com a pintura do DBGrid, mas sim com a lógica - observe as ????? no código dele.

Estava tentado faz assim, que ele pegasse a fields [2] que é onde mostra os vencimentos das parcelas e checar se for menor que a data corrente e me mostre em marrom essa linha, mas também não pode mostrar a linha em marron se se a data de pagamento estivesse preenchida, que no Field [4] que é o campo onde quando estiver pago mostra a data do dia de pagamento

robinhocne, veja nos destaques que fiz, que é só seguir o que você mesmo citou. Vou colocar só eles aqui:

fields [2] se for menor que a data corrente me mostre em marrom mas não se a data de pagamento estivesse preenchida (Field [4])

traduzindo..

pintar de marrom se fields [2] <= data atual e fields [4] for nulo.

Logo...

if (dbglan.Fields[2].AsDateTime <= Date) and
   (dbglan.Fields[4].IsNull then 
  Begin
    dbglan.Canvas.Font.Color:= clMaroon;
  End;

Fiquei curioso de onde você tirou o tal Current_Date. Ele existe no banco, mas no Delphi, você deveria usar a função Date.

Abraços

Share this post


Link to post
Share on other sites
  • 0
É praticamente igual a este seu post... é só fazer as modificações necessarias
Jhonas, parece-me que o problema do robinhocne não é mais com a pintura do DBGrid, mas sim com a lógica - observe as ????? no código dele.

Estava tentado faz assim, que ele pegasse a fields [2] que é onde mostra os vencimentos das parcelas e checar se for menor que a data corrente e me mostre em marrom essa linha, mas também não pode mostrar a linha em marron se se a data de pagamento estivesse preenchida, que no Field [4] que é o campo onde quando estiver pago mostra a data do dia de pagamento

robinhocne, veja nos destaques que fiz, que é só seguir o que você mesmo citou. Vou colocar só eles aqui:

fields [2] se for menor que a data corrente me mostre em marrom mas não se a data de pagamento estivesse preenchida (Field [4])

traduzindo..

pintar de marrom se fields [2] <= data atual e fields [4] for nulo.

Logo...

if (dbglan.Fields[2].AsDateTime <= Date) and
   (dbglan.Fields[4].IsNull then 
  Begin
    dbglan.Canvas.Font.Color:= clMaroon;
  End;
Fiquei curioso de onde você tirou o tal Current_Date. Ele existe no banco, mas no Delphi, você deveria usar a função Date. Abraços
é eu aqui espesifiquei errado mesmo o Current_date, mas analisei muito em casa e um amigo deu uma dica, e ainda mais não presteiatenção pois estou aprendendo logica na faculdade, pois resolvi da seguinte maneira:
If  dbglan.Fields[5].AsString = '1' then  //Se o campo 5 {Tipo} é igual a 1 então
          if dbglan.Fields[4].AsString <> '' Then  // Se o campo 4 {Dt Pgto} é diferente de vazio, quer dizer está cheio então
      Begin
         dbglan.Canvas.Font.Color:= clgreen  // pinte de verde para parcelas pagas
      End;
   if dbglan.Fields[2].AsDateTime <= Date Then  // Se o campo 2 {Vencimento} é menor ou igual a data então
       If  dbglan.Fields[4].AsString = '' then  // Se o campo 4 {Dt Pgto} recebe vazio então
          Begin
             dbglan.Canvas.Font.Color:= clred; // Pinte de vermelho para parcela atrasadas
          End;
   If DbgLan.Fields[5].AsString = '2' then  // Se o campo 5 {Tipo} é igual á 2 então
       begin
          DbgLan.Canvas.Font.Color := clnavy; // Pinte de azul caso contrario tudo isso não acontece nada e fica preto sua cor normal
       end;

Como tinha mais função para fazer na hora de pintar a linha do grid mudei toda a estrutura.

Resolvido :rolleyes:

Edited by robinhocne

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this