Fórum Problema Com Lógica #257907

11/11/2004

0

Bom dia..

Pessoal, estou desenvolvendo um sistema que gera um arquivo txt para gerãção de carnê.

Por exemplo, a pessoa vai gerar o arquivo escolhe o nº de pessoas que está querendo gerar e em quantas parcelas cada uma vai pagar e a data de vencimento.

Por exemplo, 4 pessoas pra gerar e 4 parcelas.
Na tabela está gravando corretamente...

Nome Data de Vencimento
EU 15/11/2004
EU 15/12/2004
EU 15/01/2005
EU 15/02/2005
ELE 15/11/2004
ELE 15/12/2004
ELE 15/01/2004
ELE 15/02/2004
. .
. .
. .

NA hora q vou gerar o arquivo não estou conseguindo colocar as datas de vencimento corretamente

Vejam o Código

if banco = 21 then begin qArquivo.First; dsFinan.DataSet.First; texto := TStringList.Create; gArquivo.MinValue := 0; gArquivo.MaxValue := qArquivo.RecordCount; SaveDialog.FileName := ´C:\Cristo Rei ´+CB_Mes.Text+´.txt´; qArquivo.First; dsFinan.DataSet.First; if rgTpParcela.ItemIndex = 1 Then begin while not qArquivo.Eof do begin for u := 1 to strtoint (edtQtdParcela.text) do begin inc(cont); registro := ´´; temp := ´´; temp1:= ´´; registro := registro + ´1´; registro := registro + ´02´; if not fCb001.ValidaCGC(´27400100000161´) then begin raise ERangeError.CreateFmt(´Favor verificar o CNPJ do Cristo Rei.´, []); end; registro := registro + ´27400100000161´; registro := registro + ´00001828078´+ StringOfChar(´ ´, 9); registro := registro + StringOfChar(´ ´, 25); sAux := IntToStr(dsFinanceiro.DataSet.fieldByName(´CBHIDENT´).AsInteger + 30000000); sAux := StringofChar (´0´, 8 - length(sAux))+ sAux; registro := registro + Calcula_Nosso_Numero(sAux) + StringOfChar(´ ´, 10) + StringOfChar(´ ´, 6) + StringOfChar(´0´, 2) + StringOfChar(´0´, 2); NossoNumero := Calcula_Nosso_Numero(sAux); registro := registro + StringOfChar(´0´, 14)+ StringOfChar(´0´, 1) + StringOfChar(´0´, 2) + stringofChar (´ ´, 10); DateTimeToString(vencimento,´ddmmyy´,StrToDateTime(vencimentos[u])); // DateTimeToString(vencimento,´ddmmyy´,qFinanceiroCBHDTVEN.asDateTime); // AQUI ESTÁ DANDO O PROBLEMA!!!!!!!!!!!!!!!!!!!!!!!!!! ************* !!!!!!!!!!!!*********** registro := registro + vencimento + stringofchar (´0´, 3) + StringOfChar(´0´, 10); registro := registro + ´021´ + StringOfChar(´0´, 5) + ´01´ + ´A´ + sData + StringOfChar(´ ´, 4) + StringOfChar(´0´, 1) + StringOfChar(´0´, 12); registro := registro + StringOfChar(´0´, 6) + StringOfChar(´0´, 13) + StringOfChar(´0´, 13) + StringOfChar(´0´, 13); registro := registro + StringOfChar(´0´, 2) + StringOfChar(´0´, 14); registro := registro + ((copy(qArquivoCBADESCR.AsString,1,40))+stringofchar (´ ´, 40 - Length(copy(qArquivoCBADESCR.AsString,1,40)))); registro := registro + ((trim(copy(qArquivoCBAENDER.AsString,1,40)))+stringofchar (´ ´, 40 - Length(Trim(copy(qArquivoCBAENDER.AsString,1,40))))); registro := registro + ((copy(qArquivoCBABAIRR.AsString,1,30))+stringofchar (´ ´, 30 - Length(trim(copy(qArquivoCBABAIRR.AsString,1,30))))); registro := registro + (trim(qArquivoCBANMCEP.AsString)+stringofchar (´ ´, 8 - Length(trim(qArquivoCBANMCEP.AsString)))); registro := registro + ((trim(copy(qArquivoCBACIDAD.AsString,1,30)))+stringofchar (´ ´, 30 - Length(trim(copy(qArquivoCBACIDAD.AsString,1,30))))); registro := registro + (qArquivoCBAESTAD.AsString)+stringofchar (´ ´, 2 - Length(trim(qArquivoCBAESTAD.AsString))); registro := registro + Copy(Mensagem.Text, 1, 40) + stringofchar (´ ´, 40 - Length(trim(copy(Mensagem.Text,1,40)))); registro := registro + inttostr(dsFinanceiro.DataSet.fieldByName(´CBHIDENT´).AsInteger) + stringofchar(´0´,2) + ´0´ + StringOfChar(´0´, 6 - Length(inttostr(cont)))+inttostr(cont); registro := registro + #1310; Texto.Text := Texto.Text + registro; qFinanceiro.Edit; qFinanceiroCBHNMBOL.AsString := NossoNumero; qFinanceiro.Post; end; with qAtualizaNossoN do begin CommandText := ´Update CBHFINAN set CBHNMBOL = ´+NossoNumero+ ´ ´+ ´Where CBAIDENT = :CBAIDENT ´; Parameters.ParamByName (´CBAIDENT´).Value := qArquivoCBAIDENT.AsInteger; execute; end; gArquivo.progress := qArquivo.recno; //final do with qArquivo.Next; end;


A pergunta é a seguinte:

Qual a lógica q eu uso pra colocar as datas de vencimento na ordem correta?

Usando dois ADO´s. Um com os Dados do Cliente e Outra com os Dados Financeiros... Ligadas entre si com parâmetro.

Se der pra ajuda....

Desde já agradeço...

Diego


Diegus

Diegus

Responder

Posts

11/11/2004

Emerson Nascimento

veja se assim funciona:

registro := registro + StringOfChar(´0´, 14) + StringOfChar(´0´, 1) + StringOfChar(´0´, 2) + stringofChar (´ ´, 10) +
      FormatDateTime(´ddmmyy´,StrToDateTime(vencimentos[u])) + stringofchar (´0´, 3) + StringOfChar(´0´, 10);

o array vencimentos é de string mesmo?


Responder

Gostei + 0

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

Aceitar