Ir para conteúdo
Fórum Script Brasil
  • 0

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


robinhocne

Pergunta

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;

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 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......

Link para o comentário
Compartilhar em outros 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

Link para o comentário
Compartilhar em outros 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:

Editado por robinhocne
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...