Fórum Tabela temporária e gerar parcelas #365819
04/11/2008
0
.
procedure TEntradaProd.GeraParcelasClick(Sender: TObject); var i, parcelas, parcela : integer; valor, total : currency; data : Tdatetime; begin inherited; cdsParcelas.CreateDataSet; cdsParcelas.Open; IBDataset1.Open; // ** aqui cada variavel vai receber um valor ** // data := IBDataSet1DATA_EMISSAO.Value; // recebe a data parcelas := JvSpinEdit1.AsInteger; // aqui recebe as parcelas valor := IBDataSet1TOTAL_NOTA.Value; // aqui o valor total total := valor / parcelas; // aqui eu divido o valor total pelo nº de parcelas parcela := 0; // ** agora vem a operação ** // for i:= 1 to parcelas do // vai adicionar no banco a qtd de registros referente ao nº de parcelas begin parcela := parcela + 1; // aqui vai sair a qtd de parcela vou mostrar no grid data := IncMonth(date,1); // aqui a data acrescida de um mes total := valor / parcelas; cdsParcelas.Append; cdsParcelasnumDoc.Value := IBDataSet1NOTAFISCAL.Value; cdsParcelasDataEmissao.Value := IBDataSet1DATA_EMISSAO.Value; cdsParcelasvalorTotal.Value := IBDataSet1TOTAL_NOTA.Value; cdsParcelasvalorParc.Value := total; cdsParcelasDataVenc.Value := data; cdsParcelasnumParc.Value := i; cdsParcelas.Active:= true; cdsParcelas.Post; end; end;
Afterdev
Curtir tópico
+ 0Posts
04/11/2008
Juniorvieira
data := IncMonth(date,1); tá errado isso..
vc deve colocar
data := incmonth(DATA,1);
´O seu erro é sempre passar a data atual + 1´ ou seja
quantas vezes ele passar no loop ele faria (date+1) e naum (data+1).
antes de passar no loop inicializa a variavel data;
data := date;
loop
data := incmonth(data,1);
end loop
Gostei + 0
04/11/2008
Afterdev
Gostei + 0
05/11/2008
Juniorvieira
Gostei + 0
05/11/2008
Emerson Nascimento
sugiro a você fazer uma pequena alteração:
procedure TEntradaProd.GeraParcelasClick(Sender: TObject); var i, parcelas: integer; valor: currency; data : Tdatetime; begin inherited; cdsParcelas.CreateDataSet; cdsParcelas.Open; IBDataset1.Open; // ** aqui cada variavel vai receber um valor ** // data := IBDataSet1DATA_EMISSAO.Value; // recebe a data parcelas := JvSpinEdit1.AsInteger; // aqui recebe as parcelas valor := IBDataSet1TOTAL_NOTA.Value; // aqui o valor total parcela := RoundTo(valor / parcelas, -2); // aqui o valor da parcela // ** agora vem a operação ** // for i := 1 to parcelas do // vai adicionar no banco a qtd de registros referente ao nº de parcelas begin data := IncMonth(data,1); // aqui a data acrescida de um mes if i = parcelas then // avalia o valor da parcela parcela := valor - (parcela * (parcelas - 1)); cdsParcelas.Append; cdsParcelasnumDoc.Value := IBDataSet1NOTAFISCAL.Value; cdsParcelasDataEmissao.Value := IBDataSet1DATA_EMISSAO.Value; cdsParcelasvalorTotal.Value := valor; cdsParcelasvalorParc.Value := parcela; cdsParcelasDataVenc.Value := data; cdsParcelasnumParc.Value := i; cdsParcelas.Post; end; end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)