Search the Community
Showing results for tags 'unidades de transporte'.
-
Boa tarde. Ao informar Unidades de Transporte no grupo de Outros Documentos (infOutros), e tentar carregar o XML no componente novamente, através do LoadFromFile, é disparada uma exception "EConvertError", como na mensagem de erro abaixo: Exception class EConvertError with message ''15,000</qtdRat></infUnidTransp>' is not a valid floating point value'. No XML está assim por exemplo: <infUnidTransp> <tpUnidTransp>1</tpUnidTransp> <idUnidTransp>1251</idUnidTransp> <lacUnidTransp> <nLacre>54541</nLacre> </lacUnidTransp> <qtdRat>15.000</qtdRat> </infUnidTransp> Olhando o código fonte da unit "\ACBr\Fontes\ACBrDFe\ACBrCTe\PCNCTe\pcteCTeR.pas" nas linhas 1026 e 1032 percebi que está um pouco diferente das declarações para os grupos anteriores acima (InfNF e InfNFe). Na linha 1026 a atribuição a variável "len" está comentada. Na linha 1032 está sendo passada a variável "pos3" como argumento no lugar de "len". //... // len := pos3 - pos2; (Linha 1026) // if (pos1 = 0) and (pos2 = 0) and (pos3 = 0) or (pos1 > pos3) then // qtdRat_UnidTransp := 0.0; if (pos1 < pos3) then qtdRat_UnidTransp := StringToFloatDef(Copy(sAux, pos2 + 8, pos3 -8), 0) // (Linha 1032) else qtdRat_UnidTransp := 0.0; //... Realizei um teste, removendo o comentário na linha 1026 e substituindo a variável "pos03" por "len" como argumento e parou de dar a exceção, além de que o valor ser atribuído corretamente na variável "qtdRat_UnidTransp" (antes ficava zerada). Tem algum motivo das declarações nesse bloco do InfOutros estar diferente do outros grupos (InfNF e InfNFe)? Obs.: Revisão do ACBr utilizada = 34383 Segue em anexo unit modificada com a qual fiz o teste. Obrigado pcteCTeR.pas