Calculo de datas (quando data em branco)
Bom o outro topico com relação aos valores esta resolvido obrigado a todos
Mais o de data resolvi abrir outro topico e passar o codigo que eu uso
Veja so:
var venc, Pagto: Tdate;
difdias :double;
begin
venc:=StrToDate(dbEdit5.Text);
Pagto:=StrToDate(dbEdit7.Text);
difdias :=(Pagto - venc);
dbedit12.text:=FloatToStr(difdias);
Uso esse calculo de datas para me retornar a quantidade de dias(funciona beleza) a questão que se eu não informar o pagto (dbedit7) ele da uma mensagem de erro ´__/__/____ não é uma data valida´
Como faço para resolver isso em cima desse codigo que eu uso
Obrigado desde já
wagnernormando@ig.com.br
Mais o de data resolvi abrir outro topico e passar o codigo que eu uso
Veja so:
var venc, Pagto: Tdate;
difdias :double;
begin
venc:=StrToDate(dbEdit5.Text);
Pagto:=StrToDate(dbEdit7.Text);
difdias :=(Pagto - venc);
dbedit12.text:=FloatToStr(difdias);
Uso esse calculo de datas para me retornar a quantidade de dias(funciona beleza) a questão que se eu não informar o pagto (dbedit7) ele da uma mensagem de erro ´__/__/____ não é uma data valida´
Como faço para resolver isso em cima desse codigo que eu uso
Obrigado desde já
wagnernormando@ig.com.br
Wagner
Curtidas 0
Respostas
Fórum Vini
17/02/2004
Olá,
tente usar esse código:
Espero ter ajudado.
Vinicius.
tente usar esse código:
var venc, Pagto: Tdate; difdias :double; begin try venc:=StrToDate(dbEdit5.Text); except Showmessage(´Data de vencimento inválida!!´); end; try Pagto:=StrToDate(dbEdit7.Text); except Showmessage(´Data de pagamento inválida!!´); end; difdias :=(Pagto - venc); dbedit12.text:=FloatToStr(difdias);
Espero ter ajudado.
Vinicius.
GOSTEI 0
Lucas Silva
17/02/2004
no evento onSetText do campo coloque:
procedure .queryCampoSetText(Sender: TField; const Text: String); begin if Text = ´ / / ´ then Sender.AsString := ´´ else Sender.AsString := Text; end;
GOSTEI 0
Wagner
17/02/2004
Valeu .vini
Mais teu condigo não funciona para mim porque muitas vezes eu tenho que ter o campo data de pagamento em branco (se o cliente não pagou ainda) o que eu quero o evitar o erro quando dt.pag=nada. :lol:
Oh! lucas eu acho que é por ai, mais tambem continua com a mensagem :lol:
Mais teu condigo não funciona para mim porque muitas vezes eu tenho que ter o campo data de pagamento em branco (se o cliente não pagou ainda) o que eu quero o evitar o erro quando dt.pag=nada. :lol:
Oh! lucas eu acho que é por ai, mais tambem continua com a mensagem :lol:
GOSTEI 0
Lucas Silva
17/02/2004
Qual a máscara que você colocou no campo?
GOSTEI 0
Fórum Vini
17/02/2004
Valeu .vini
Mais teu condigo não funciona para mim porque muitas vezes eu tenho que ter o campo data de pagamento em branco (se o cliente não pagou ainda) o que eu quero o evitar o erro quando dt.pag=nada. :lol:
Oh! lucas eu acho que é por ai, mais tambem continua com a mensagem :lol:
Ok Wagner,dei a dica usando o try..except porque ele já é também uma forma de se verificar se a data está válida.
Mas no seu caso a dica do Lucas é melhor.
T+,
Vinicius.
GOSTEI 0
Wagner
17/02/2004
Dessa forma
__/__/____
no editmask 99/99/9999
__/__/____
no editmask 99/99/9999
GOSTEI 0
Wagner
17/02/2004
[b:7a383dccc9]If[/b:7a383dccc9] nada [b:7a383dccc9]then[/b:7a383dccc9] sobe
GOSTEI 0
Paulo_amorim
17/02/2004
Olá
Se o campo for vazio, o que deveria acontecer??
o difdias deve retornar o que especificamente?
Até+
Se o campo for vazio, o que deveria acontecer??
o difdias deve retornar o que especificamente?
Até+
GOSTEI 0
Wagner
17/02/2004
Nada! eu apenas quero uma maneira de não mostrar a mensagem de erro ´essa não é uma data valida ´ / / ´ ´ quando não informo a data de pagamento mais veja bem muitas vezes eu vou precisar do campo data de pagamento em branco (se o cliente não pagou ainda) so que como e um campo onde eu uso uma soma de datas ele da a mensagem quando não informo a data exegindo que eu bote a data mais so que como eu já disse ´muitas vezes não ter que preencher o campo data de pagamento´
GOSTEI 0
Lucas Silva
17/02/2004
[quote:0edb2deb6b=´Lucas Alves Silva´]no evento onSetText do campo coloque:
[/quote:0edb2deb6b]
Wagner,
Este código não funcionou???
Continua dando o erro do mesmo jeito?
procedure .queryCampoSetText(Sender: TField; const Text: String); begin if Text = ´ / / ´ then Sender.AsString := ´´ else Sender.AsString := Text; end;
Wagner,
Este código não funcionou???
Continua dando o erro do mesmo jeito?
GOSTEI 0
Marco Salles
17/02/2004
Só Uma Opinião. Claro Que Todas as Opiniões Anteriores São De Muita Validade(Tanto No Uso Do Bloco Try Except, Tanto ao Testar o Campo No Evento OnSetTexte), Mas Eu Estou Achando Que o Nosso Amigo Wagner, Quer Evitar Que a Mensagem De Erro Apareça , Caso a Data De Pagamento Não Seja Informada(Como Ele Mesmo Disse, Pode Ser Que Ainda Nã Houve o Pagamento)..Então Olhando Por Este Prisma, Porque Não Efetuar Um Simples Teste , Dentro Da Rotina Que Ele Mesmo Escreveu :?: :?: ...
var venc, Pagto: Tdate; difdias :double; begin venc:=StrToDate(dbEdit5.Text); if DbEdit7.Text <> ´´ Then // Simples Teste begin Pagto:=StrToDate(dbEdit7.Text); difdias :=(Pagto - venc); end else difdias:=0; dbedit12.text:=FloatToStr(difdias);
GOSTEI 0