natiii 0 Denunciar post Postado Novembro 20, 2007 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
natiii 0 Denunciar post Postado Novembro 20, 2007 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