Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Claudemir Vaz

Geração de Parcelas ao Salvar

Recommended Posts

Alguem pode me ajudar com este codigo qro que ele de um post no primeiro registro e nos outros depois ..


with dmDados do

begin

cdsReceber.Close;

cdsReceber.Open;

cdsReceber.Append;

frmCadReceber := TfrmCadReceber.Create(Self);

if frmCadReceber.ShowModal = mrOk then

begin

Parcela := cdsReceberREC_PARCELA.AsInteger;

valorParcela := cdsReceberREC_VALOR.AsCurrency / Parcela;

for I := 1 to Parcela do

begin

while I = 1 do

begin

cdsReceberCODRECEBER.AsInteger := GerarCodigoReceber;

cdsReceberREC_VALOR.AsCurrency := valorParcela;

cdsReceber.Post;

end;

cdsReceber.Open;

cdsReceber.Append;

cdsReceberCODRECEBER.AsInteger := GerarCodigoReceber;

cdsReceber.Post;

end;

end;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Sinceramente não entendi o porque do "while I=1 do" :no:

 

Não sei, mas isso não resolveria?

 
with dmDados do
begin
  cdsReceber.Close;
  cdsReceber.Open;
  frmCadReceber := TfrmCadReceber.Create(Self);
  if frmCadReceber.ShowModal = mrOk then
  begin
    for I := 1 to cdsReceberREC_PARCELA.AsInteger do
    begin
      valorParcela := cdsReceberREC_VALOR.AsCurrency / cdsReceberREC_PARCELA.AsInteger;
      cdsReceber.Append;
      cdsReceberCODRECEBER.AsInteger := GerarCodigoReceber;
      cdsReceberREC_VALOR.AsCurrency := valorParcela;
      cdsReceber.Post;
    end;
  end;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho um botão chamado parcelado quando eu clico nele ele executa o comando append porque se nao ele me mostra um registro nos campos quando eu clico simplesmente no botao sem dar append

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Só pra eu entender. O que você precisa é que:

 

Quando pressione o botão parcelado, ele gere as parcelas com os valores, certo?

 

No código que eu apliquei aquela pequena alteração, você chegou a ver se funcionou?

 

O código que está dentro desse botão, é somente o que você postou no início do tópico?

 

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Sim entendi o que você precisa, estou analisando pra sacar aonde estamos errando.

 

Você está trabalhando com os dados em memória com ClientDataSet? Caso esteja, você está submetendo um Apply para que os dados sejam gravados fisicamente na tabela?

 

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim exatamente quando eu clico em novo registro parcelado em contas a receber ele ja inicia com append ai quando clico em salvar o registro tenho que dar um post no primeiro registro entende

 

acho que no lugar do while posso usar um if

 

quando a variavel I for 1 ele da um post no primeiro registro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Hum... você chegou a fazer e ver o resultado?

 

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega obrigado pela ajuda consegui fazer utilizando um if

 

 

for I := 1 to Parcela do
begin
if I = 1 then
begin
cdsReceberCOD_CLIENTE.AsInteger := CodCliente;
cdsReceberREC_DATA.AsDateTime := Data;
cdsReceberREC_VENCIMENTO.AsDateTime := Vencimento;
cdsReceberREC_NUMERO.AsString := Format('%3.3d', )+'/'+Format('%3.3d', [Parcela]);
cdsReceberREC_VALOR.AsCurrency := valorParcela;
cdsReceber.Post;
end else
begin
cdsReceber.Append;
cdsReceberCODRECEBER.AsInteger := GerarCodigoReceber;
cdsReceberCOD_CLIENTE.AsInteger := CodCliente;
cdsReceberREC_VENCIMENTO.AsDateTime := IncMonth(Vencimento,(I - 1));
cdsReceberREC_DATA.AsDateTime := Data;
cdsReceberREC_NUMERO.AsString := Format('%3.3d', )+'/'+Format('%3.3d', [Parcela]);
cdsReceberREC_VALOR.AsCurrency := valorParcela;
end;
end;


Agora estou com uma outra duvida preciso pegar o resto de uma divisao até sei como fazer para pegar mas ele esta arredontando a soma das 3 divisões 33,33 + 33,33 + 33,33 = 100 ele me joga 100 redeondo sabe como resolver isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Teria como você postar parte do código onde ele está fazendo isso para que eu possa analisar?

 

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Teria como você postar parte do código onde ele está fazendo isso para que eu possa analisar?

 

Até a próxima. :thumbsup:

 

Eu faço assim amigo:

 

          ValorParcelas  := Trunc(ValorTotal / QtParcelas);
          vlr_parcela1   := (ValorTotal-(ValorParcelas*QtParcelas));
          if nParcela = 1 then
            ValorParcelas := ValorParcelas+vlr_parcela1
          else
            ValorParcelas := ValorParcelas;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.