Ir para conteúdo
  • Cadastre-se

dev botao

Componente Alterando Tag <Uf> Ao Carregar Xml


ncc.star
  • Este tópico foi criado há 3349 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Quando carrega um XML de um MDF-e a tag <UF> do veículo (tração ou reboque) está sendo alterada para a mesma UF do proprietário.

 

Exemplo:

 

<prop>

    <CPF>0000000000</CPF>

    <RNTRC>00000000</RNTRC>

    <xNome>XXXXXXXXX</xNome>

    <IE>ISENTO</IE>

    <UF>PA</UF>

    <tpProp>2</tpProp>

</prop>

<condutor>

    <xNome>XXXXXXXXXXX</xNome>

    <CPF>11111111111</CPF>

</condutor>

<tpRod>03</tpRod>

<tpCar>00</tpCar>

<UF>SP</UF>

</veicTracao>

 

Depois que carrega o XML no componente, ele altera para:

 

<prop>

    <CPF>0000000000</CPF>

    <RNTRC>00000000</RNTRC>

    <xNome>XXXXXXXXX</xNome>

    <IE>ISENTO</IE>

    <UF>PA</UF>

    <tpProp>2</tpProp>

</prop>

<condutor>

    <xNome>XXXXXXXXXXX</xNome>

    <CPF>11111111111</CPF>

</condutor>

<tpRod>03</tpRod>

<tpCar>00</tpCar>

<UF>PA</UF>

</veicTracao>

 

Isso acontece quando o componente lê o XML ele está buscando o primeiro campo UF que encontra.

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde ncc,

 

Favor atualizar os fontes e testar novamente.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Olá Ítalo, o campo UF está retornando agora '<U'

 

Para o Veículo Tração, acho que teve um pequeno engano, é só alterar o parâmetro copy posição inicial de 1 para 5.

 

copy(Leitor.rExtrai(3, 'UF', '', 2), 1, 2);

para

copy(Leitor.rExtrai(3, 'UF', '', 2), 5, 2);

 

Já para o veículo reboque está errado porque está trazendo a UF do Veículo Tração. 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde ncc,

 

Fiz a correção sugerida, mas não sei se vai resolver por completo.

 

Acredito que o problema só será resolvido de forma definitiva fazendo uma alteração na function que lê o conteúdo de uma TAG.

 

Como essa function é utilizada por diversos componentes, essa alteração tem que ser feita com muito cuidado, para não afetar os demais componentes.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Olá Italo.

 

Deu problema dessa forma. Usando o rExtrai ele limpa os dados do proprietário e condutor que vem logo abaixo.

Como alternativa eu pensei de fazer dessa forma:

copy(Leitor.Grupo,(Pos('</tpCar>', Leitor.Grupo)+12),2);

 

Eu sei que essa não é a maneira ideal de resolver isso, mas foi o que eu pensei até a gente achar uma solução melhor.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde ncc,

 

Vou estudar o caso e buscar uma solução mais elegante.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Olá Italo.

 

Depois que atualizei os fontes, ao carregar o XML percebi que nos dados do proprietário do VeicReboque está vindo os dados do proprietário do VeicTracao.

 

Para corrigir, alterei a linha ~240 de 

 

if Leitor.rExtrai(3, 'prop') <> '' then

 

para

 

if Leitor.rExtrai(4, 'prop') <> '' then

 

 

Só que essa modificação pra ficar correta, depende da alteração que eu sugeri anteriormente.

 

Até a gente não achar uma solução melhor, não dá para deixar da forma que eu sugeri para trazer os dados corretamente?

 

Anexei pmdfeMDFeR.pas para você poder analisar.

 

 

 

 

 

 

 

pmdfeMDFeR.pas

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia ncc,

 

Vou analisar e assim que possível disponibilizar.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3349 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.