MARSAN Posted May 8, 2018 Report Share Posted May 8, 2018 Bom dia. Sempre utilizei o arquivo txt para gerar as nfes. A flexdocs nao vai dar continuidade mais me deixando na mao. Sou dos antigos clippeiros e estou tendo muitaaaa dificultade para gerar um xml no braco. Como os amigos mais experientes estao fazendo?? desde ja agradeco a atencao. abracos Quote Link to comment Share on other sites More sharing options...
Jorge Andrade Posted May 8, 2018 Report Share Posted May 8, 2018 Amigo, Sabemos que todas as mudanças são difíceis, mas são compensadoras, suas dificuldades iniciais vão trazer benefícios enormes quando gerar o primeiro arquivo direto por xml, uma delas é a interpretação do arquivo e possíveis erros. Não uso Flexdoc, então, não posso te ajudar neste sentido, pois eu gero o arquivo inteiro em xml sem utilizar DLL externas e nem o método TxmlDocument , mas, aconselho a fazer por funções gerando e concatenando cada etapa dele, exemplo: Cabeçalho grupo IDE grupo emit grupo dest e suas opções de endereços grupo prod e assim até o fim e verá que não é bicho de 7 cabeças. Eu não uso os métodos TxmlDocument, gero direto []s, Quote Link to comment Share on other sites More sharing options...
ecob Posted May 8, 2018 Report Share Posted May 8, 2018 @Marsan, utilize o TXmlDocument Um exemplo básico para começar: FUNCTION ...... nHandle:=Fopen(arquivo_xml) oXml:=TXmlDocument():new(nHandle,1) cTag:='nNF' cParent:='ide' cData:='' oNode:=oXml:FindFirst(cTag) FOR AA:=1 TO 2 IF oNode:oParent:cName == cParent cData:=oNode:cData ELSE oNode:=oXml:FindNext(cTag) ENDIF NEXT IF EMPTY(cData) ?'Tag informada não encontrada' ELSE ?'Valor encontrado para a tag '+cTag,cData ENDIF RETURN Faça uns testes, veja os retornos, etc, aí é só declarar um vetor com as tags e parents e obter todo o conteúdo necessário e tratar. edit: após o trecho cData:=oNode:cData, deveria ter um EXIT. Att Erciley Coimbra Quote Link to comment Share on other sites More sharing options...
Jorge Andrade Posted May 9, 2018 Report Share Posted May 9, 2018 @Marsan, utilize o TXmlDocument Um exemplo básico para começar: FUNCTION ...... nHandle:=Fopen(arquivo_xml) oXml:=TXmlDocument():new(nHandle,1) cTag:='nNF' cParent:='ide' cData:='' oNode:=oXml:FindFirst(cTag) FOR AA:=1 TO 2 IF oNode:oParent:cName == cParent cData:=oNode:cData ELSE oNode:=oXml:FindNext(cTag) ENDIF NEXT IF EMPTY(cData) ?'Tag informada não encontrada' ELSE ?'Valor encontrado para a tag '+cTag,cData ENDIF RETURN Faça uns testes, veja os retornos, etc, aí é só declarar um vetor com as tags e parents e obter todo o conteúdo necessário e tratar. edit: após o trecho cData:=oNode:cData, deveria ter um EXIT. Att Erciley Coimbra Erciley, acho que ele quer gerar a nota e não ler o xml. Quote Link to comment Share on other sites More sharing options...
ecob Posted May 9, 2018 Report Share Posted May 9, 2018 ele quer gerar a nota Ops, entendi errado. Nesse caso, vc já deu a dica então. Abraços Att Erciley Coimbra Quote Link to comment Share on other sites More sharing options...
MARSAN Posted May 14, 2018 Author Report Share Posted May 14, 2018 MUITO OBRIGADO A TODOS QUE RESPONDERAM O TOPICO. DEUS OS ABENCOE FORTE ABRACO Quote Link to comment Share on other sites More sharing options...
Daniel Lopes Filho Posted May 16, 2018 Report Share Posted May 16, 2018 você pode usar as funções que a dll disponibiliza para gerar as informações do xml http://www.flexdocs.com.br/guiaNFe/gerarNFe.html segue outro exemplo funcional do testes do xharbour xmltest.prg Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.