Fórum Parcelamento de valor #214606
16/02/2004
0
Preciso parcelar uma compra qdo ela é parcelada. Eu tinha um prog. em paradox que fazia corretamente. Agora uso Ado com Access, e a única diferença, do PDOX para o ADO é eu tinha uma tabela plano de pagto e nesta eu não preciso. Fiz um loop, e não está saindo do loop. Fiz assim:
Declarei as seguintes variáveis.
INT Intervalo das prestações INTEGER.
PAR Qde de parcelas INTEGER.
VALPARC valor das parcelas que é Total/PAR.
i integer.
As variáveis INT e PAR são lidas de uns edit´s.
Não sai do loop. A diferença para o outro que dá certo, é que eu tinha uma tabela de plano de pagto(neste caso não deve existir), e a ultima linha ficava assim:
i = Planoparcelas.Value; Antes que alguns possam falar, não é erro de SINTAXE. Os códigos compilam normalmente. caso haja alguma coisa aqui, escrita errada, foi erro de digitação. Eu copiei a rotina toda para postar, como eu estou num CYBER, o disquete não funcionou, então eu a reescrevi, mas é isso mesmo, sem faltar nada. Ah! outra coisa, eu dou um INCMONTH, para incrementar um mes. Porem muitas das parcelas são pagas quinzenalmente ou semanalmente. Não consegui fazer, Tentei os seguintes exemplos, baseados na minha rotina:
INCMONTH(DATE, (INT))
INCMONTH(INT, (i)) E NADA. Como fazer?
Declarei as seguintes variáveis.
INT Intervalo das prestações INTEGER.
PAR Qde de parcelas INTEGER.
VALPARC valor das parcelas que é Total/PAR.
i integer.
As variáveis INT e PAR são lidas de uns edit´s.
begin for i := 1 to Par-1 do begin Pagar.Open; REPEAT Pagar.Insert; Pagardata.Value:=date; pagarcodcompra.value:=strtoint(edit1.Text); pagarvencto.value:=incmonth(date, (i); pagarvalparc.value:=VALPARC; pagarnumparc.value:=i; pagar.post; UNTIL i = par; end; end;
Não sai do loop. A diferença para o outro que dá certo, é que eu tinha uma tabela de plano de pagto(neste caso não deve existir), e a ultima linha ficava assim:
i = Planoparcelas.Value; Antes que alguns possam falar, não é erro de SINTAXE. Os códigos compilam normalmente. caso haja alguma coisa aqui, escrita errada, foi erro de digitação. Eu copiei a rotina toda para postar, como eu estou num CYBER, o disquete não funcionou, então eu a reescrevi, mas é isso mesmo, sem faltar nada. Ah! outra coisa, eu dou um INCMONTH, para incrementar um mes. Porem muitas das parcelas são pagas quinzenalmente ou semanalmente. Não consegui fazer, Tentei os seguintes exemplos, baseados na minha rotina:
INCMONTH(DATE, (INT))
INCMONTH(INT, (i)) E NADA. Como fazer?
Paulo
Curtir tópico
+ 0
Responder
Posts
16/02/2004
Rrsoft
begin
for i := 1 to Par-1 do begin
Pagar.Open;
REPEAT
Pagar.Insert;
Pagardata.Value:=date;
pagarcodcompra.value:=strtoint(edit1.Text);
pagarvencto.value:=incmonth(date, (i);
pagarvalparc.value:=VALPARC;
pagarnumparc.value:=i;
pagar.post;
UNTIL
i = par; //mude aquí para i = par+1
end;
end;
Tente a mudança acima e verifique se funciona!
RRsoft
for i := 1 to Par-1 do begin
Pagar.Open;
REPEAT
Pagar.Insert;
Pagardata.Value:=date;
pagarcodcompra.value:=strtoint(edit1.Text);
pagarvencto.value:=incmonth(date, (i);
pagarvalparc.value:=VALPARC;
pagarnumparc.value:=i;
pagar.post;
UNTIL
i = par; //mude aquí para i = par+1
end;
end;
Tente a mudança acima e verifique se funciona!
RRsoft
Responder
Gostei + 0
16/02/2004
Adilsond
var I: Integer; VlParc: Double; begin VlParc := Trunc((ValorTotal / QtdParc) * 100) / 100; Pagar.Open; for I := QtdParc downto 1 do begin Pagar.Insert; PagarData.Value := Date; PagarCodCompra.Value := StrToInt(Edit1.Text); PagarVencto.Value := IncMonth(Date, I); if I = 1 then PagarValParc.Value := ValorTotal - (VlParc * (QtdParc - 1)) else PagarValParc.Value := VlParc; PagarNumParc.Value := I; Pagar.Post; end; Pagar.Close; end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)