Problema Com Lógica
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
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
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
Curtidas 0
Respostas
Emerson Nascimento
11/11/2004
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?
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?
GOSTEI 0