Ir para conteúdo

Arquivado

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

natiii

- Geração de Arquivo txt

Recommended Posts

Olá amigos, minha dúvida de hoje é a seguinte: Encontrei um erro na geração de arquivo txt..

O arquivo deveria ser gerado da seguinte forma:

 

P0012345200712000000015000012 000001

F0012345056700200711060000000255000000000027250000000015100000000002650000003002

F0012345060700200711060000000340000000000034780000000016700000000008520000004003

F0012345064700200711060000000425000000000041300000000018900000000014800000005004

F0012345068700200711060000000510000000000048000000000021400000000020600000006005

P0023456200801000000012000012 000006

F0023456056800200711060000000246000000000017250000000015100000000011650000002907

F0023456060800200711060000000321000000000014780000000013140000000010820000003608

F0023456064800200711060000000378000000000011300000000008900000000006800000004059

F0023456068800200711060000000360000000000010150000000008250000000006600000038510

 

 

Onde P é a parcela e F são as faturas referentes àquela parcela, onde se encontra o próximo P tem as faturas relacionadas a essa parcela e assim por diante, o problema é que o meu arquivo txt está sendo gerado da seguinte forma:

 

P0001235012007000000008862012 000001

F000123512793520070604000000021762000000006243000000000435 000000002844000002

P0001235022007000000008862012 000003

F000123513141220070604000000018373000000000557000000000367 000000019297000004

P0001235032007000000008862012 000005

F000123513420520070604000000021711000000000456000000000434 000000022601000006

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que é algum problema no while...

Mas não sei como posso fazer..

aqui está o código:

 

while not AdoQueryArquivoP.Eof do
   begin
  linha:= 'P' + FixStr(AdoQueryArquivoP.fieldByName('CDC').AsString,7,'0',DIREITA) +
  FixStr(AdoQueryArquivoP.fieldByName('Competencia').AsString,6,'0',DIREITA) +
  FixStr(SoNumeros(AdoQueryArquivoP.fieldByName('VlrParcelas').AsString),12,'0',DIREITA)+
  FixStr(AdoQueryArquivoP.fieldByName('QtParcelas').AsString,3,'0',DIREITA) +
  FixStr(' ',53) +
  FixStr(SoNumeros(IntToStr(i)),6,'0', DIREITA);
  Writeln(Arquivo, linha);
  i:= i+1;
	 adoqueryarquivof.close;
	 adoqueryarquivof.Parameters.ParamByName('Fatura1').Value:= adoqueryarquivop.fieldByName('Fatura').AsString;
	 adoqueryarquivof.parameters.ParamByName('datanegociacao').Value := strtodate(editdataneg.text);
	 adoqueryarquivof.open;


	  while not AdoQueryArquivoF.Eof do
		begin
		  linha:= 'F' + FixStr(AdoQueryArquivoF.fieldByName('CDC').AsString,7,'0') +
		  FixStr(AdoQueryArquivoF.fieldByName('Fatura').AsString,6,'0')+
		  FormatDateTime('YYYYMMDD', AdoQueryArquivoF.fieldByName('DataNegociacao').AsDateTime) +
		  FixStr(SoNumeros(AdoQueryArquivoF.fieldByName('Valor').AsString),12,'0',DIREITA) +
		  FixStr(SoNumeros(AdoQueryArquivoF.fieldByName('Juros').AsString),12,'0', DIREITA) +
		  FixStr(SoNumeros(AdoQueryArquivoF.fieldByName('Multa').AsString),12,'0', DIREITA) +
		  FixStr(' ',12) +
		  FixStr(SoNumeros(AdoQueryArquivoF.fieldByName('Total').AsString),12,'0',DIREITA)+
		  FixStr(SoNumeros(IntToStr(i)),6,'0', DIREITA);
		  Writeln(Arquivo, linha);
		  AdoQueryArquivoF.Next;
			i:= i+1;
			valorTotal:= valorTotal + AdoQueryArquivoF.fieldByName('Total').AsCurrency;
			end;

			AdoQueryArquivoP.Next;
			end;
Estou precisando muito...

 

Se alguém tiver uma idéia, eu agradeço

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.