Segue exemplo abaixo, espero que o ajude procedure TFrm_lancaMatricula.SpeedButton1Click(Sender: TObject); var Ano, mes, dia: Word; contparc : integer; vardata : TDateTime; v_mnn,v_mcb, dvcb : Integer ; nn, DigitoNossoNumero : String ; v_dnn : Real ; valorint : string[12]; valorfrac: string[2]; begin if DBEditqtparcelas.Text = '' then begin Mensagem('Quantidade de Parcelas não informada. Informe a Qtde no intervalo de 1...5'); DBEditqtparcelas.setfocus; Abort; end;
// Grava parcelas no historico de Pgtos dmgcnet.tblhistpgto.Active := true; vardata := Strtodate(dbedit6.text); contparc:= 1; while contparc <= StrToInt(DBEditqtparcelas.Text) do /// o que interessa é esta parte, neste laço voce qtde de parcelas begin dmgcnet.tblhistpgto.Append; dmgcnet.tblhistpgto.edit; DMGCNET.tblhistpgtoID_MATRICULA.AsString := DBEdit4.Text; dmgcnet.tblhistpgtoPARCELA.Value := IntToStr(contparc)+'/'+DBEditqtparcelas.Text;; dmgcnet.tblhistpgtoNDOC.AsString := dmgcnet.tblhistpgtoID_ALUNO.asstring + copy(dbedit2.Text,6,1)+ '0'+ IntToStr(contparc)+ copy(dbedit2.Text,1,4); If DBEditmensdif.text <> '' then begin dmgcnet.tblhistpgtoVALOR.Value := strtofloat( DBEditmensdif.text); ValorInt := StrZero(IntToStr(Trunc(dmgcnet.tblhistpgto.FieldByName('Valor').AsFloat)), 12); // FormatCurr('R$ ###0.00',ValorAbatimento) ValorFrac := Right(FloatToStrF(dmgcnet.tblhistpgto.FieldByName('Valor').AsFloat, ffFixed, 10,2), 2) end else begin dmgcnet.tblhistpgtoVALOR.Value := strtofloat( DBEditvlmensal.text) * 0.90; ValorInt := StrZero(IntToStr(Trunc(dmgcnet.tblhistpgto.FieldByName('Valor').AsFloat)), 12);; ValorFrac := Right(FloatToStrF(dmgcnet.tblhistpgto.FieldByName('Valor').AsFloat, ffFixed, 10,2), 2) ; end; case contparc of 1:begin dmgcnet.tblhistpgtoDTVENCTO.AsDateTime := vardata; dmgcnet.tblhistpgtoMESANO.value := copy(datetostr(vardata),4,2)+copy(datetostr(vardata),7,4); end; 2:begin dmgcnet.tblhistpgtoDTVENCTO.AsDateTime := StrToDate(copy(Datetostr(vardata),1,2)+'/'+copy(Datetostr(vardata+31),4,2)+'/'+copy(Datetostr(vardata+31),7,4)); dmgcnet.tblhistpgtoMESANO.value := copy(datetostr(vardata+31),4,2)+copy(datetostr(vardata+31),7,4); end; 3:begin dmgcnet.tblhistpgtoDTVENCTO.AsDateTime := StrToDate(copy(Datetostr(vardata),1,2)+'/'+copy(Datetostr(vardata+62),4,2)+'/'+copy(Datetostr(vardata+62),7,4)); dmgcnet.tblhistpgtoMESANO.value := copy(datetostr(vardata+62),4,2)+copy(datetostr(vardata+62),7,4); end; 4:begin dmgcnet.tblhistpgtoDTVENCTO.AsDateTime := StrToDate(copy( Datetostr(vardata),1,2)+'/'+copy(Datetostr(vardata+93),4,2)+'/'+copy(Datetostr(vardata+93),7,4)); dmgcnet.tblhistpgtoMESANO.value := copy(datetostr(vardata+93),4,2)+copy(datetostr(vardata+93),7,4); end; 5:begin dmgcnet.tblhistpgtoDTVENCTO.AsDateTime := StrToDate(copy( Datetostr(vardata),1,2)+'/'+copy(Datetostr(vardata+124),4,2)+'/'+copy(Datetostr(vardata+124),7,4)); dmgcnet.tblhistpgtoMESANO.value := copy(datetostr(vardata+124),4,2)+copy(datetostr(vardata+124),7,4); end; 6:begin dmgcnet.tblhistpgtoDTVENCTO.AsDateTime := StrToDate(copy(Datetostr(vardata),1,2)+'/'+copy(Datetostr(vardata+150),4,2)+'/'+copy(Datetostr(vardata+150),7,4)); dmgcnet.tblhistpgtoMESANO.value := copy(datetostr(vardata+150),4,2)+copy(datetostr(vardata+150),7,4); end; end; dmgcnet.tblhistpgtoTPPGTO.AsString := 'MEN'; dmgcnet.tblhistpgtoPERLETIVO.AsString := dbedit2.Text; dmgcnet.tblhistpgtoSTATUS.Value := 'A'; //Calculo do dígito Verificador do Código de Barras cb := '0019'+ Valorint + Valorfrac +'999210'+'0000'+Copy(Dmgcnet.tblhistpgtoID_ALUNO.ASSTRING,1,6)+Copy(Dbedit2.text,6,1)+'0'+Inttostr(contparc)+Copy(Dbedit2.text,1,4)+'21'; //********************************************************************************************************************** v_dcb := (v_mcb mod 11) ; if (11 - v_dcb > 9) OR (11 - v_dcb = 1) OR (11 - v_dcb = 0) then begin Dmgcnet.tblhistpgtoCBARRAS.asstring := '0019'+ inttostr(1)+ Valorint + Valorfrac +'999210'+'0000'+Copy(Dmgcnet.tblhistpgtoID_ALUNO.ASSTRING,1,6)+Copy(Dbedit2.text,6,1)+'0'+inttostr(contparc)+Copy(Dbedit2.text,1,4)+'21'; //*************************************************************************************************************************************** end else begin ('0',StrtoFloat(InttoStr(m)))+Dados.sociosS_grupo.value+Dados.sociosS_Cod.value+'064800300000685'; Dmgcnet.tblhistpgtoCBARRAS.asstring := '0019'+ inttostr(v_dcb)+ Valorint + Valorfrac +'999210'+'0000'+Copy(Dmgcnet.tblhistpgtoID_ALUNO.ASSTRING,1,6)+Copy(Dbedit2.text,6,1)+'0'+IntToStr(contparc)+Copy(Dbedit2.text,1,4)+'21';; end; // Calculo DA Linha digitavel recebe valor da funçÃO Dmgcnet.tblhistpgtoLDIGITAVEL.AsString := linhadigitavel; // Calculo do nosso Número nn := '0000'+Copy(Dmgcnet.tblhistpgtoID_ALUNO.ASSTRING,1,6)+Copy(Dbedit2.text,6,1)+'0'+Inttostr(contparc)+Copy(Dbedit2.text,1,4) ; DigitoNossoNumero := Modulo11NN(nn,9); if StrToInt(DigitoNossoNumero) = 10 then DigitoNossoNumero := 'X' ; dmgcnet.tblhistpgtoNNUMERO.AsString := nn + '-' + digitonossonumero; dmgcnet.tblhistpgto.post; contparc := contparc + 1; end; dmgcnet.TblTurmas.edit; dmgcnet.TblTurmasTOTALALUNO.value := dmgcnet.TblTurmasTOTALALUNO.value +1; dmgcnet.TblTurmas.post; DBGtitulos.Visible :=true; DMGCNET.TblMatriculas.POST; end; www.gcnetinfomatica.net Giovanni Oliveira ----- Original Message ----- From: João S. Araújo To: delphi-br@yahoogrupos.com.br Sent: Tuesday, October 17, 2006 8:06 AM Subject: Re: [delphi-br] Gerar parcelas e Cobrança de juros no recebimento Olá Giovani, estou fazendo o meu contas receber baseado em vendas, então quando solicitio que uma venda seja faturada, abro abro a tela do contas receber, cadastro o contas no nome do cliente, consulto as vendas do cliente que ainda não foram faturadas, então solicito que a mesmas sejam faturadas, então valor da venda é somado ao valor contas, a partir desse momento tava pensando em chamar atraves de um botão uma tela pra gerar as parcelas, até consegui um função na net pra isso, só que ela gera todas as parcelas de uma vez, e eu estava precisando de algo que possibilitasse ao usuário informa se os valores das prestações são iguais ou se as prestações contem valores diferenciados. Obrigado João ----- Original Message ----- From: "Giovanni Cupertino de Oliveira" <[EMAIL PROTECTED]> To: <delphi-br@yahoogrupos.com.br> Sent: Tuesday, October 17, 2006 12:20 AM Subject: Re: [delphi-br] Gerar parcelas e Cobrança de juros no recebimento Como são os títulos gerados pelo seu contas a receber? são parcelas mensais ou são parcelas únicas? Varia muito de aplicação e regras do negócio, esta geração. Por exemplo: estou desenvolvendo um sistema para uma escola que gera 5 parcelas fora a matricula. me situe melhor para que eu possa tentar ajudar. Giovanni Oliveira www.gcnetinformatica.net ----- Original Message ----- From: João S. Araújo To: delphi-br@yahoogrupos.com.br Sent: Monday, October 16, 2006 4:45 PM Subject: [delphi-br] Gerar parcelas e Cobrança de juros no recebimento Boa tarde pessoal, To precisando gerar as parcelas do meu contas a receber e também efeturar a cobrança de juros no recebimento quando o cliente pagar atrasado. Tava precisando de alguns exemplos. Vc6 podem me ajudar... Obrigado João [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html