Você utiliza a tabela de contratos para administrar as parcelas que ele
gerou?

Você não tem uma tabela de contratos (com os dados contratuais) e faz a
geração do financeiro (em uma tabela de financeiro) separadamente ?

Acho que o seu controle deveria ser um contrato com adendos de renovações,
com data inicial e final, desta forma você controla as parcelas de cada
adendo, ao invés de ficar seguindo as parcelas que foram geradas pelo
contrato inicial, até porque não é o contrato inicial e sim um adendo de
renovação.

É assim que penso, mas se quiser continuar com este raciocínio, terá que
mudar seu procedimento, para verificar se existe parcelas deste contrato, se
existir, pega a quantidade de parcelas que existe, e vai incrementando no
seu for aí.

Compliquei ou descompliquei?

Abraços.

2009/5/27 vandeirr <vande...@yahoo.com.br>

>
>
> Tenho uma tela de parcela onde tenho a opção para gerar determinada
> quantidade de parcela, como faço para gerá-las novamente a partir da última
> parcela gerada? Por exemplo, tenho 12 parcelas geradas, gostaria de
> continuar gerando da 13 para frente como faço? Na verdade da primeira vez
> gero as parcelas inicias do contrato, na segunda vez gostaria de gerar as
> parcelas para renovação do mesmo contrato, apenas acrescentando as novas
> parcelas na sequencia.
>
> estou usando esse código:
>
> procedure TForm1.Btn_IncluirClick(Sender: TObject);
> var
> i: Byte;
> begin
> //Abro o Banco
> ClientDataSet1.Open;
> //Chamo um procedimento para verificar se tem prestação pendente
> verificaparcela;
> // Minha variável no caso i inicialmente é 0
> i:=0;
> // minha variável recebe 1 do numero de parcelas no caso o digitado dentro
> de edParcela.Text
> for i := 1 to StrToInt(edParcela.Text) do
> begin
> // verifico o numero é menor do que o da variavel
> if ClientDataSet1.RecordCount < i then
> // se for insiro
> ClientDataSet1.Insert
> else
> //senao edito
> ClientDataSet1.Edit;
> //PARC vai receber o numero de parcelas que eu digitei
> ClientDataSet1.FieldByName(\'PARC\').Value := i;
> //VALOR vai receber o valor digitado dividido pelo numero de parcelas
> ClientDataSet1.FieldByName(\'VALOR\').Value
> :=(StrToFloat(edtValor.Text)/(StrToInt(edParcela.Text)));
> //DATA recebe a data replicando conforme o numero das parcelas
> ClientDataSet1.FieldByName(\'DATA\').Value:= incMonth( Date, i - 1);
> //Gravo no banco
> ClientDataSet1.Post;
> //vou para o próximo
> Next;
> end;
> //Dou um updade para gravar esse registro no banco lembre-se que quando
> //trabalho com clientDataSet eu trabalho em cachê é necessário dar um
> //ApplyUpdates(0) para gravar no banco o (0) significa o numero de erros
> //claro com certeza isso só vai acontecer se não tiver nenhum erro ok
> ClientDataSet1.ApplyUpdates(0);
> //Mando uma mensagem de texto
> showmessage(\'Arquivo incuido com sucesso\');
> end;
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]

Responder a