| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
rogerioclaro2 Experiente

Registrado: Quinta-Feira, 17 de Outubro de 2013 Mensagens: 404
|
Enviada: Ter Abr 07, 2020 11:11 am Assunto: Contas a Receber com Parcelas geradas em um dbgrid |
|
|
Pessoal, bom dia!
Preciso de uma ajuda de vocês.
estou fazendo um sistema sistema simples de contas a receber, nele eu tenho o cliente, data de emissão, e tenho um total de parcelas.
Queria fazer algo para ao digitar a quantidade de parcelas, ele ja criar as parcelas de forma automática.... tipo data de emissão 07.04.2020
total de 2 parcelas ai ele de forma automática ja criaria 1 parcelas com espaçamento de 30 dias entre elas tendo como base a data de emissão, 1 parcela para dia 07.05.2020 e a outra para o dia 07.06.2020.
Atualmente faco de forma manual.. preenchendo um a um.
segue meu código
botão novo
| Código: | VAR
cod : Integer;
begin
If Application.MessageBox ('Deseja Agendar no Contas a Receber?',
'Confirmação',mb_yesno+mb_iconquestion) = idyes then
begin
//dM.tblmOV.Append;
dm.tblMov.EmptyDataSet;
// LimpaCampos();
cod:=0;
DM.tblReceber.Last;
COD:=Dm.tblReceber.FIELDBYNAME('CODBOLETA').ASINTEGER+1;
DM.tblReceber.Append;
edtCodigo.Text:=INTTOSTR(COD);
dm.tblReceber.edit;
dm.tblReceber.Post;
dm.tblReceber.edit;
DM.tblmov.Open;
dm.tblMov.Append;
/// showmessage('teste');
dm.tblMov.edit;
dm.tblMovCodBoleta.Value := dm.tblReceberCodBoleta.Value;
bbCancelar.Enabled := True;
bbGravar.Enabled := True;
bbNovo.Enabled := False;
bbalterar.Enabled := False;
bbExcluir.Enabled := False end else
begin
dm.tblReceber.cancel;
bbCancelar.Enabled := False;
bbGravar.Enabled := False;
bbNovo.Enabled := True;
bbAlterar.Enabled := True;
bbExcluir.Enabled := True;
end;
end; |
Botão gravar:
| Código: | If Application.MessageBox ('Deseja Incluir Mais Parcelas?',
'Confirmação',mb_yesno+mb_iconquestion) = idyes then
begin
dm.tblmov.Append;
DBEdit2.SetFocus;
end else
begin
Screen.Cursor:=crHourGlass;
dm.tblMov.First;
While dm.tblmOv.Eof = false do
begin
dm.tblMov.edit;
dm.tblMovCodAluno.Value := dm.tblReceberCodAluno.Value;
dm.tblMovMes.Text := DateToStr(dm.tblMovVencimento.AsDateTime); //ToString;//FormatDateTime ('mm',dm.tblMovVencimento.Value);
dm.tblMovReferencia.Text := dm.tblMovMes.ToString + dm.tblMovVencimento.ToString;
dm.tblMovEstenso.Value := '(' + numeroParaExtenso (dm.tblMovValorParcela.Value) + ')';
dm.tblMov.Next;
end;
dm.tblMov.last;
dm.tblmov.edit;
dm.tblReceber.edit;
dm.tblmov.edit;
dm.tblmov.post;
dm.tblMov.ApplyUpdates(0);
dm.tblReceber.post;
dm.tblReceber.ApplyUpdates(0);
label12.Visible := false;
Showmessage ('Parcelas Geradas Com Sucesso!');
bbCancelar.Enabled := False;
bbGravar.Enabled := False;
bbNovo.Enabled := True;
bbalterar.Enabled := True;
bbExcluir.Enabled := True;
Screen.Cursor:=crDefault;
end;
|
banco de dados firebird, e usando clientdataset
Mais uma vez obrigado a todos |
|
| Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Ter Abr 07, 2020 11:23 am Assunto: |
|
|
Você pode usar a função IncMonth da unit DateUtils para incrementar o mês em cada parcela.
Veja um exemplo de uso da função IncMonth:
Declare DateUtils na cláusula uses do form.
| Código: | var
dataEmissao: TDate;
NumParcelas, i: Integer;
begin
dataEmissao:= Now;
NumParcelas:= 2;
for I := 1 to NumParcelas do
ShowMessage(FormatDateTime('dd/mm/yyyy', IncMonth(dataEmissao, i)));
end; |
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
rogerioclaro2 Experiente

Registrado: Quinta-Feira, 17 de Outubro de 2013 Mensagens: 404
|
Enviada: Ter Abr 07, 2020 11:31 am Assunto: |
|
|
| natanbh1 escreveu: | Você pode usar a função IncMonth da unit DateUtils para incrementar o mês em cada parcela.
Veja um exemplo de uso da função IncMonth:
Declare DateUtils na cláusula uses do form.
| Código: | var
dataEmissao: TDate;
NumParcelas, i: Integer;
begin
dataEmissao:= Now;
NumParcelas:= 2;
for I := 1 to NumParcelas do
ShowMessage(FormatDateTime('dd/mm/yyyy', IncMonth(dataEmissao, i)));
end; |
|
Olá natan obrigado... colo ele no onexit do edit aonde coloca a quantidade de parcelas? |
|
| Voltar ao Topo |
|
 |
rogerioclaro2 Experiente

Registrado: Quinta-Feira, 17 de Outubro de 2013 Mensagens: 404
|
Enviada: Ter Abr 07, 2020 1:08 pm Assunto: |
|
|
| coloque no on exit do edit que sai as parcelas.. ai dei a mensagem de data corretas.. agora teria que ter o valor e jogar no dbgrid ja preenchendo.. alguma dica? |
|
| Voltar ao Topo |
|
 |
|