Ola a todos,
Uso com sucesso a classe do Quintas que contem a função acima, para leitura de xml de fornecedores!
Porém, num xml específico a função não encontra o det nItem="10" do xml. Qndo chega nesse item a variavel retorna vazia e sai do loop.
Não consegui ver onde esta o erro
Janio
XmlToDocNfeEmi da Classe do Quintas
Moderador: Moderadores
XmlToDocNfeEmi da Classe do Quintas
- Anexos
-
- 23170204706416000180550000003000871481849036.XML
- (15 KiB) Baixado 51 vezes
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
XmlToDocNfeEmi da Classe do Quintas
Você não está errando nada a Classe tem esse "problema" que eu também não consegui resolver aqui...
Se os itens estão fora de ordem, que pra começar é um absurdo, dá esse erro. A classe do simplesmente entende que é o final do xml e finaliza...
Como é raro esse tipo de nota, eu edito o xml com o notepad e devolvo o xml para o cliente "corrigido" aí sim ele dá conta de importar o xml com a classe...
Rubens
Se os itens estão fora de ordem, que pra começar é um absurdo, dá esse erro. A classe do simplesmente entende que é o final do xml e finaliza...
Como é raro esse tipo de nota, eu edito o xml com o notepad e devolvo o xml para o cliente "corrigido" aí sim ele dá conta de importar o xml com a classe...
Rubens
"Eu e minha casa servimos ao Senhor e você
"
XmlToDocNfeEmi da Classe do Quintas
Isso mesmo, Rubens.
Mas se vc colocar o cBlocoDetalhe dentro do loop, ele passa a encontrar todos os produtos.
Mas penso essa nao ser a melhor solução!
Mas se vc colocar o cBlocoDetalhe dentro do loop, ele passa a encontrar todos os produtos.
Mas penso essa nao ser a melhor solução!
Código: Selecionar todos
cBlocoDetalhe := ""
IF "<det" $ cXmlInput
cBlocoDetalhe := Substr( cXmlInput, At( "<det", cXmlInput ) - 1 )
ENDIF
FOR nCont = 1 TO 1000
cBlocoDetalhe := ""
IF "<det" $ cXmlInput
cBlocoDetalhe := Substr( cXmlInput, At( "<det", cXmlInput ) - 1 )
ENDIF
cBlocoItem := XmlNode( cBlocoDetalhe, [det nItem="] + AllTrim( Str( nCont ) ) + ["] )
IF Len( Trim( cBlocoItem ) ) = 0 // Se acabaram os itens
EXIT
ENDIF
AAdd( oNFE:Produto, NFEProdutoClass():New() )
...
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql