Uso o componente do ACBrNFe para ler XML´s de terceiros para agilizar o lançamentos das notas. Porém tenho percebido que em alguns XML´s, os itens não vem na mesma ordem que é impresso no DANFE. E o trecho de código abaixo do arquivo pcnNFeR.pas, na linha 345 o correto seria colocar o conteúdo da variável nItem que foi lido no XML, mas o q é feito é um incremento a cada leitura.
337 NumItem := copy(ItensTemp,Pos('nItem=',ItensTemp)+7,Pos('"',ItensTemp));
338 NumItem := copy(NumItem,1,Pos('"',NumItem)-1);
339 nItem := StrToInt(NumItem);
340 Itens := StringReplace(Itens, ItensTemp, '',[]);
341 ItensTemp := copy(Itens,Pos('<det nItem=',Itens),(Pos('</det>',Itens)+6)-Pos('<det nItem=',Itens));
342
343 Leitor.rExtrai(1, 'det nItem="' + IntToStr(nItem) + '"', 'det');
344 NFe.Det.Add;
345 (* *)NFe.Det.prod.nItem := i + 1;
346 (*V01*)NFe.Det.infAdProd := Leitor.rCampo(tcStr, 'infAdProd');
Abraços a todos.
Edson Marcelo
EMSoft Sistemas