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
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
Curtir tópico
+ 0
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
agradeço a todos pela ajuda, muito obrigado
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
Responder
Clique aqui para fazer login e interagir na Comunidade :)