Comparação de datas dos registros com a data atual do sistema - Delphi 7
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.
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
Curtidas 0
Respostas
Vinicius David
08/02/2021
lembrando que o campo DTARETIRADA salvei como varchar no ibexpert
GOSTEI 0
Claudio Andrade
08/02/2021
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');
GOSTEI 0
Emerson Nascimento
08/02/2021
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;
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;
GOSTEI 0