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: [email protected]
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: <[email protected]>
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: [email protected]
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