Fórum Ajuda com cadastro automatico #425498

04/10/2012

0

Olá gene é o seguinte

no meu sistema ele tem um cadastro de parcelas, no caso o usuário seleciona o cliente e cria a parcela,
eu coloquei um Edit para o usuário escrever quantas parcelas ele quer gerar aí no botão confirmar eu tentei colocando o comando FOR, mas ele apenas cria os dados em branco... se eu crio 1 parcela e coloco no edit para ele fazer 3 parcelas ele gera a que eu preenchi os dados mas acaba gerando mais 3 com todos os dados em branco menos o código que é numeração automática e a data de alteração

    for quantosmeses := 1 to StrToInt(EdtQuantosMeses.Text) do begin
    DTM.DTSParcelasClientes.post;
    DTM.DTSParcelasClientes.Insert;

    DTM.DTSParcelasClientespar_data_alt.AsDateTime := date;
        end;
    self.TrataBotoes;


também já tentei capturar os dados o colocar em variáveis, e depois colocar para ele preencher em baixo do DTM.DTSParcelasClientespar_data_alt.AsDateTime := date; mas ele gera os cadastros todos em branco do mesmo jeito
Jeferson Araujo

Jeferson Araujo

Responder

Posts

04/10/2012

Bruno Leandro

ola Jeferson tente utilizar desta forma, substitua o campo nr_parcela pelo nome do seu campo

for quantosmeses := 1 to StrToInt(EdtQuantosMeses.Text) do begin
DTM.DTSParcelasClientes.Insert;
DTM.DTSParcelasClientespar_data_alt.AsDateTime := date;
DTM.DTSParcelasClientespar_nr_parcela.AsInteger := quantosmeses;
DTM.DTSParcelasClientes.post;
end;
self.TrataBotoes;
Responder

Gostei + 0

04/10/2012

Jeferson Araujo

Tinha funcionado eu que tinha feito uma coisa errada vlw!!! ficou assim o código:
  begin
    clientecodsolicitacao:=StrToInt(DBECodigoSolicitacao.Text);
    quantosmeses:= StrtoInt(DBEQuantosMeses.Text);
    clientenomesolicitacao:= DBLCodSolicitacao.Text;
     Situacao:= DBESituacao.Text;
    datavencimento:= StrToDate(DBEDataVencimento.Text);

    for quantosmeses := 1 to StrToInt(EdtQuantosMeses.Text) do begin

    DTM.DTSParcelasClientes.Insert;

    DTM.DTSParcelasClientespar_data_alt.AsDateTime := date;
    DTM.DTSParcelasClientespar_datavencimento.AsDateTime := datavencimento;
    DTM.DTSParcelasClientespar_situacao.AsString:= Situacao;
    DTM.DTSParcelasClientespar_codigosolicitacao.AsInteger:= clientecodsolicitacao;

    DTM.DTSParcelasClientesnome_cliente.AsString:= clientenomesolicitacao;

        DTM.DTSParcelasClientes.post;

        end;
    self.TrataBotoes;

  end;


Mas uma coisa... quando eu cadastro o cliente e no EditQuantasParcelas coloco 3 por exemplo ele gera a que eu preenchi e mais 3, mas no caso a data do vencimento queria que adiantasse os 3 meses também, no caso
se eu colocar vencimento dia 10/10/2012, queria que ele gerasse:

A primeira que eu preenchi: 10/10/2012
e as outras 3
10/11/2012
10/12/2012
10/01/2013
Responder

Gostei + 0

04/10/2012

Jeferson Araujo

aí galera alguém??
assim eu mudei pra ele gerar o número q o usuário definir então ta assim:
Nome do Cliente com DblookupCombobox, data de vencimento com DbEdit, numero de parcelas à gerar com Edit, e valor com DbEdit tbm...

daí assim o usuário seleciona o cliente, coloca a data do vencimento por exemplo 10/10/2012, quantas parcelas ele irá gerar, por exemplo 3, e o valor.

quando ele clica para gerar ele está criando estas 3 parcelas, mas como ele está repetindo tudo, ele copia as datas tendo 3 parcelas com a mesma data de vencimento queria que fosse a 1ª parcela com a data 10/10/2012 e a segunda parcela com 10/11/2012 e a terceira com 10/12/2012,

Eu coloquei na parte DTM.DTSParcelasClientespar_datavencimento.AsDateTime := (datavencimento + 30);
onde ele adiciona 30 dias mas dai ficam assim os cadastros:

1ª 10/10/2012 2ª 09/12/2012 e a 3ª 09/12/2012

teria como fazer adicionando para todas? e deixar o dia fixo?
Responder

Gostei + 0

04/10/2012

Bruno Leandro

Ola jeferson veja se desta forma fica conforme solicitado

begin
clientecodsolicitacao:=StrToInt(DBECodigoSolicitacao.Text);
quantosmeses:= StrtoInt(DBEQuantosMeses.Text);
clientenomesolicitacao:= DBLCodSolicitacao.Text;
Situacao:= DBESituacao.Text;
datavencimento:= StrToDate(DBEDataVencimento.Text);

for quantosmeses := 0 to StrToInt(EdtQuantosMeses.Text) + 1 do begin

DTM.DTSParcelasClientes.Insert;

DTM.DTSParcelasClientespar_data_alt.AsDateTime := date;
DTM.DTSParcelasClientespar_datavencimento.AsDateTime := IncMonth(datavencimento,quantosmeses);
DTM.DTSParcelasClientespar_situacao.AsString:= Situacao;
DTM.DTSParcelasClientespar_codigosolicitacao.AsInteger:= clientecodsolicitacao;

DTM.DTSParcelasClientesnome_cliente.AsString:= clientenomesolicitacao;

DTM.DTSParcelasClientes.post;

end;
self.TrataBotoes;

end;
Responder

Gostei + 0

05/10/2012

Jeferson Araujo

ok vlw =) eu vou testas provavelmente amanhã porque cheguei agora do trab, e ja tenho q sair e amanhã tbm vou trabalhar de manhã e tarde. Até de noite respondo se funcionou ou não ^^
Responder

Gostei + 0

07/10/2012

Jeferson Araujo

Muito Obrigado!
Funcionando perfeitamente!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar