Fórum Gerar parcela automaticamente #400435
06/05/2011
0
Se alguem puder me dar um exemplo montado.
Willian Amor
Curtir tópico
+ 0Posts
06/05/2011
Rodrigo Mattos
Espero ter Ajudado.
Gostei + 0
06/05/2011
Willian Amor
O que eu quero é tipo assim.
Eu tenho um provedor de internet.
Eu tenho o cliente willian, que vai me pagar R$ 50,00 todo mes. O cliente willian escolhe q vai me pagar todo dia 20 de cada mes.
Entao quando ele me pagar eu apenas irei dar baixar, sem precisar lançar as parcelas a receber na mao.
Gostei + 0
06/05/2011
André Silveira
Gostei + 0
06/05/2011
Willian Amor
é exatamente isso que quero fazer, mas nao sei como.
Gostei + 0
08/05/2011
Willian Amor
No Evento onClick do botão incluir coloque
procedure TForm1.Btn_IncluirClick(Sender: TObject);
var
i: integer;
Begin Dm.cdsparcela.Open; //Abro o Banco
verificaparcela; //Chamo um procedimento para verificar se tem prestação pendente
i:=0; // Minha variável no caso i inicialmente é 0
for i := 1 to StrToInt(edParcela.Text) do // minha variável recebe 1 do numero de parcelas no caso o digitado dentro de edParcela.Text
begin
if dm.cdsparcela.RecordCount < i then // verifico o numero é menor do que o da variavel
dm.cdsparcela.Insert // se for insiro
else //senao edito
dm.cdsparcela.Edit; //PARC vai receber o numero de parcelas que eu digitei dm.cdsparcela.FieldByName('descricao').Value:=edtdescricao.Text;
dm.cdsparcela.FieldByName('PARC').Value := i; //VALOR vai receber o valor digitado dividido pelo numero de parcelas
dm.cdsparcela.FieldByName('VALOR').Value :=(StrToFloat(edtValor.Text)/StrToInt(edParcela.Text)));
dm.cdsparcela.FieldByName('DATA').Value:= incMonth( Date, i - 1); //DATA recebe a data replicando conforme o numero das parcelas
dm.cdsparcela.Post; //Gravo no banco dm.cdsparcela.Next; //vou para o próximo
end;
//Dou um updade para gravar esse registro no banco lembre-se que quando
dm.cdsparcelas.ApplyUpdates(0); //ApplyUpdates(0) para gravar no banco o (0) significa o numero de erros
showmessage('Arquivo incuido com sucesso'); //Mando uma mensagem de texto
end;
em private declare o procedimento de verificacao
procedure verificaparcela; Ctrl+Shift+C para criar o procedimento
procedure TForm1.verificaparcela;
var //Crio uma variavel para verificar o resultado
result:string;
begin
if dm.cdsparcela.Fields.Fields[2].AsString<>'' then //Aqui verifico se a coluna em que esta a parcela esta vazia
begin
dm.cdsgerar.Open; //Abro o ClientDataset de verificação de contagem dos campos
begin
result:=dm.cdsgerarCOUNT.AsString; //result vai receber a quantidade de parcelas em aberto
Showmessage('Você possui '+ result +' parcelas pendentes' + #13
+ 'Nao é possivel efetuar pagamento'); //envio uma mesagem para o usuario falando que tem a quantidade que retornar em aberto
abort; //aborto a operação e fecho o ClientDataSet referente a contagem dos campos
dm.cdsgerar.Close;
end;
end;
end; Para criar as parcelas na impressão. Trabalho com Quirk Report. Basta colocar um botão de Imprimir Parcelas e digite o seguinte código. Coloque no Quirk 1 bands. Detalhes. Ligue o QuickRep1 na DM.cdsparcela e coloque os compontes.
Aqui esta o meu form para gerar as parcelas.
onde escolho o nome do motorista, digito o numero de parcelas e o valor total a ser dividido, porem como disse antes, ele gera apenas uma parcela, nao salva no banco e nao geras as demais para o mesmo motorista. Ele gera apenas uma e some com o nome depois pede para informar outro nome para continuar.
Alguem pode me dar uma ajuda?
Gostei + 0
08/05/2011
Willian Amor
No Evento onClick do botão incluir coloque
procedure TForm1.Btn_IncluirClick(Sender: TObject);
var
i: integer;
Begin Dm.cdsparcela.Open; //Abro o Banco
verificaparcela; //Chamo um procedimento para verificar se tem prestação pendente
i:=0; // Minha variável no caso i inicialmente é 0
for i := 1 to StrToInt(edParcela.Text) do // minha variável recebe 1 do numero de parcelas no caso o digitado dentro de edParcela.Text
begin
if dm.cdsparcela.RecordCount < i then // verifico o numero é menor do que o da variavel
dm.cdsparcela.Insert // se for insiro
else //senao edito
dm.cdsparcela.Edit; //PARC vai receber o numero de parcelas que eu digitei dm.cdsparcela.FieldByName('descricao').Value:=edtdescricao.Text;
dm.cdsparcela.FieldByName('PARC').Value := i; //VALOR vai receber o valor digitado dividido pelo numero de parcelas
dm.cdsparcela.FieldByName('VALOR').Value :=(StrToFloat(edtValor.Text)/StrToInt(edParcela.Text)));
dm.cdsparcela.FieldByName('DATA').Value:= incMonth( Date, i - 1); //DATA recebe a data replicando conforme o numero das parcelas
dm.cdsparcela.Post; //Gravo no banco dm.cdsparcela.Next; //vou para o próximo
end;
//Dou um updade para gravar esse registro no banco lembre-se que quando
dm.cdsparcelas.ApplyUpdates(0); //ApplyUpdates(0) para gravar no banco o (0) significa o numero de erros
showmessage('Arquivo incuido com sucesso'); //Mando uma mensagem de texto
end;
em private declare o procedimento de verificacao
procedure verificaparcela; Ctrl+Shift+C para criar o procedimento
procedure TForm1.verificaparcela;
var //Crio uma variavel para verificar o resultado
result:string;
begin
if dm.cdsparcela.Fields.Fields[2].AsString<>'' then //Aqui verifico se a coluna em que esta a parcela esta vazia
begin
dm.cdsgerar.Open; //Abro o ClientDataset de verificação de contagem dos campos
begin
result:=dm.cdsgerarCOUNT.AsString; //result vai receber a quantidade de parcelas em aberto
Showmessage('Você possui '+ result +' parcelas pendentes' + #13
+ 'Nao é possivel efetuar pagamento'); //envio uma mesagem para o usuario falando que tem a quantidade que retornar em aberto
abort; //aborto a operação e fecho o ClientDataSet referente a contagem dos campos
dm.cdsgerar.Close;
end;
end;
end; Para criar as parcelas na impressão. Trabalho com Quirk Report. Basta colocar um botão de Imprimir Parcelas e digite o seguinte código. Coloque no Quirk 1 bands. Detalhes. Ligue o QuickRep1 na DM.cdsparcela e coloque os compontes.
Aqui esta o meu form para gerar as parcelas.
onde escolho o nome do motorista, digito o numero de parcelas e o valor total a ser dividido, porem como disse antes, ele gera apenas uma parcela, nao salva no banco e nao geras as demais para o mesmo motorista. Ele gera apenas uma e some com o nome depois pede para informar outro nome para continuar.
Alguem pode me dar uma ajuda?
onde escolho o nome do motorista, digito o numero de parcelas e o valor total a ser dividido, porem como disse antes, ele gera apenas uma parcela, nao salva no banco e nao geras as demais para o mesmo motorista. Ele gera apenas uma e some com o nome depois pede para informar outro nome para continuar, nao gera tambem o vencimento da proxima parcela para o mes seguinte.
Eis meus forms abaixo.
http://imageshack.us/photo/my-images/52/parcela.jpg/
http://imageshack.us/photo/my-images/15/erroparcela.jpg/
Gostei + 0
23/10/2011
Daverson
sem sim poderia me ajudar a fazer a mesma coisa?
se nao vamos resolver isso juntos
qualquer coisa me avise por email jdaverson-arroba-gmail.com
Gostei + 0
08/12/2012
Robert Camargo
sem sim poderia me ajudar a fazer a mesma coisa?
se nao vamos resolver isso juntos
qualquer coisa me avise por email jdaverson-arroba-gmail.com
procedure TFormSaidaProdutos.DBEdit7Exit(Sender: TObject);
var parc : integer;
valor: real;
begin
begin
DataModule1.TabelaSaidaPai.Edit;
DataModule1.TabelaSaidaPai.Post;
parc:= 1;
valor:=0;
while parc
Gostei + 0
08/12/2012
Wasley Portes
Qualquer coisa me avisa que lhe dou um help.
msn: wasleyalves@ibest.com.br
Wasley
Gostei + 0
10/12/2012
Márcio Lima
Eu tenho uma Procedure já feita para gerar parcelas que eu uso em um sistema meu, se quiser posso te passar.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)