Validar Data com dia atual (DELPHI)

15/12/2020

0

Bom dia, recentemente abri um topico parecido, onde apresentei o problema de Validação de data, onde ela não funcionava corretamente, fui apresentado ao seguinte codigo

if (Trunc(Tabela.FieldByName('DATA').AsDateTime) <> Trunc(now)) then
if (Trunc(Tabela.FieldByName('DATA').AsDateTime) = 0) or (Trunc(Tabela.FieldByName('DATA').AsDateTime) < Trunc(Now)) then
begin
Tabela.FieldByName('DATA').FocusControl;
raise Exception.Create('Data inválida! Data inferior a data atual!');
end;

Onde 90% dos meus problemas foram resolvidos, agradeço de coração por quem me ajudou e me disponibilizou este codigo.
Esse codigo funcionou a primeira vista, porem ficou pendente a questão de que ainda ele julga que o dia de hoje é inferior ao dia de hoje, aonde preciso fazer o ajuste? Tentei fazer alguns porem nenhum com sucesso, este é o code que me foi disponibilizado, reforçando, ele é muito bom e me ajudou muito, mas em toda minha jornada não consegui criar ou encontrar um codigo que resolva a questao de hoje ser inferior a hoje, to começando a achar que tal codigo não existe kkkk
Muito obrigado pela ajuda

Utilizo Delphi 10.2 e banco SQLite
Ramboli

Ramboli

Responder

Post mais votado

15/12/2020

Opa, volto aqui para informar que consegui achar a solução, estou disponibilizando aqui
Primeiro é necessário declarar DateUtils nos Uses
Em seguida coloque o seguinte codigo

  if Query.State = dsInsert then                  // verefica se q query esta em modo de edição, foi necessario que no meu caso do verefique no modo de inserir
     begin
      if (Trunc(Query.FieldByName('DATA').AsDateTime) <> Trunc(now)) then              // ve se a data é igual a hoje
       if (Trunc(Query.FieldByName('DATA').AsDateTime) = 0) or (Trunc(Query.FieldByName('DATA').AsDateTime) <= Trunc(Yesterday)) then       // faz as verificações. se a data é igual a nada ou se é igual ou menor //que o dia de 0ntem
       begin
          Query.FieldByName('DATA').FocusControl;     // manda o foco para o campo
          raise Exception.Create('Data inválida! Data inferior a data atual!');    // mensagem de erro tipo raise
       end;
     end;



agradeço a todos pela ajuda, muito obrigado

Ramboli

Ramboli
Responder

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

Aceitar