Comparação de datas dos registros com a data atual do sistema - Delphi 7

08/02/2021

0

Boa tarde pessoal,
tudo bem?

Estou desenvolvendo um sistema em delphi, banco de dados firebird e as tabelas estou criando no IBExpert.

Estou utilizando os componentes da Paleta do Interbase no Delphi.

Seguinte...

Tenho uma tela de locação dos produtos e uma data para pagamento.

Eu gostaria que todas as vezes que eu acessar o sistema, me retorne uma mensagem falando que tenho títulos em atraso (no caso seria essa data de pagamento quando for menor que a data atual do sistema).

Nesse caso, no Menu Inicial, eu coloquei no Evento OnCreate o seguinte código:

frmmenu.show; // aqui seria para abrir o primeiro form do sistema
Edit1.Text := DateToStr(Date); // aqui fiz uma gambiarra no delphi para pegar a data atual do sistema deixando um edit invisivel no primeiro form
while frmmenu.IBDataSet1['DTARETIRADA'] < Edit1.Text do
begin
MessageBox(Application.Handle,'Você possuí tírulos em Aberto, por favor verifique!','Títulos em Aberto',MB_OK+MB_ICONERROR); // aqui só mostra a mensagem que tem título em Aberto, porém queria colocar um botão de Sim ou Não para abrir a tela de títulos em aberto.
end;

poderiam me ajudar?

Desde já fico grato.
Vinicius David

Vinicius David

Responder

Posts

08/02/2021

Vinicius David

lembrando que o campo DTARETIRADA salvei como varchar no ibexpert
Responder

08/02/2021

Claudio Andrade

Veja se ajuda!

  if Application.MessageBox('Você possuí títulos em Aberto, por favor verifique!', 'Títulos em Aberto', MB_ICONQUESTION + MB_YESNO) = mrYes then
  begin
    ShowMessage('abrir o form');
    exit;
  end
  else // o ELSE  é opcional
    ShowMessage('Passa direto');
Responder

08/02/2021

Emerson Nascimento

recomento que você altere o tipo do campo para DATE. vai facilitar tudo, desde pesquisas até ordenação.
se precisar manter como varchar, grave o conteúdo no formato YYYYMMDD.

daí você monta um dataset/função pra trazer o resultado.

cdsTitulosAberto.Close;
cdsTitulosAberto.CommandText := 'SELECT [lista de campos] FROM TABELA WHERE DTARETIRADA < :VDATARETIRADA ';
cdsTitulosAberto.ParamByName('VDATARETIRADA').AsString := FormatDateTime('yyyymmdd', system.date);
cdsTitulosAberto.Open;

if not cdsTitulosAberto.IsEmpty and
(MessageBox(Application.Handle,'Você possui títulos em Aberto. Deseja visualizá-los?','Títulos em Aberto',MB_OK+MB_ICONERROR+MBYESNO) = mrYes ) then // indica que há títulos
MostraTitulos; // função para apresentar um form com o conteúdo de cdsTitulosAberto

cdsTitulosAberto.Close;


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar