Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

flavioavilela

erro ao fazer o sistema avisar datas importantes

Recommended Posts

boa tarde a todos...

no meu sistema eu fiz o ele mesmo avisar algumas datas lançadas, por exemplo, a data de pagamento de uma conta... se tiver uma conta vencendo hoje, ele avisa na tela com uma mensagem.... mas agora, eu queria fazer ele avisar 1, 2, 3 dias antes da conta vencer.... alguem da uma luz???

 

obs.: estou fazendo um locate na tabela de contas a pagar e verificando se tem alguma conta vencendo hoje...

Compartilhar este post


Link para o post
Compartilhar em outros sites

boa tarde a todos...

no meu sistema eu fiz o ele mesmo avisar algumas datas lançadas, por exemplo, a data de pagamento de uma conta... se tiver uma conta vencendo hoje, ele avisa na tela com uma mensagem.... mas agora, eu queria fazer ele avisar 1, 2, 3 dias antes da conta vencer.... alguem da uma luz???

 

obs.: estou fazendo um locate na tabela de contas a pagar e verificando se tem alguma conta vencendo hoje...

 

Teóricamente você deveria pegar a data do sistema atual, tirar o número de dias antes que você quer antecipar o aviso, e depois comparar com a data das contas... não parece ser difícil, o sistema está fazendo isso!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o sistema já pega no dia que está vencendo a conta... se tiver vencendo alguma conta hoje, ele já avisa, mas eu quero saber com alguns dias de antencedencia..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque não usa uma query com between?

 

Select campoA, campoB, campoC
from tabela
where vencimento between '20091208 00:00:00' and '20091212 23:59:59'

É mais prático que usar uma table.... e você pode montar filtros mais complexos.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo, eu imaginei assim: eu criei uma janela de paraemtros do sistema... o kra configura qntos dias de antecedencia ele quer que o sistema avisa... se ele digitar 3, por exemplo, quando faltar 3 dias pra conta vencer ele já avisa... ai falta 2 dias pra conta vencer, ai ele avisa que falta 2 dias para alguma conta vencer, nao precisa saber ql conta, so precisa saber que tem conta vencendo... se tiver faltando um dia, ele avisa que falta 1 dia.... até o dia que vencer, parar de avisar....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai é questão de em que momento você vai gerar essa mensagem... tipo, em algum momento você vai ter que disparar uma consulta no seu BD para filtrar quais ou quantos casos você tem para vencer daqui N dias... o fato que isso será parametrizado não é nenhum problema, basta você pegar o dia atual e acrescentar o número de dias parametrizado para jogar no between da pesquisa. Agora, a questão é: onde você faz essa busca (momento/forma que é disparada), como está seu código hoje e como você vai retornar os dados para o cliente... sem isso é meio difícil alguém te dar alguma sugestão.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

achei uma solução bem legal para o q eu preciso...

subtrair a data de vencimento pela data atual... caso a subtração for <= ao dia que eu informar para avisar e >=0, entao avisa...

ai eu passei essa subtração pra uma variavel chamada resul, e na mensagem eu faço: 'Há contas vencendo daqui 'resul' dias'... mesmo assim, obrigado pela sua ajuda amigo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exemplo:

 

nDiasAviso := 3;

 

x := Date - SqlQuery.FieldByName('DataVenc').AsDateTime

 

if (Date <= SqlQuery.FieldByName('DataVenc').AsDateTime) and (x > -1) and (x <= nDiasAviso) then begin

 

if x > 0 then

ShowMessage('O documento XYZ vencerá em '+IntToStr(x))

else

ShowMessage('O documento XYZ vencerá hoje');

 

end;

 

 

// A variavel nDiasAviso, pode ser um parametro qualquer.

// Ele verifica se a data de hoje é menor ou igual a data de vencimento (Date <= SqlQuery.FieldByName('DataVenc').AsDateTime)

// Ele verifica se ja nao passo da data (x > -1)

// Ele verifica se a diferença de dias não é maior que a que você deseja verificar (x <= nDiasAviso)

 

 

Acho q seria mais ou menos isso... se eu tiver errado me corrijam...

 

 

abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.