Jump to content
Sign in to follow this  
luisveber

Importar dados XML NFE com Visual Basic

Recommended Posts

Bom dia pessoal,

Estou com uma dúvida, tenho um código que importa os dados de um arquivo xml de uma nota fiscal, porém não estou conseguindo importar a tag "dup" do arquivo xml quando existem mais de uma parcela a ser paga, quando importo para um datagrid eu consigo, porém preciso que estas informações sejam importadas para um textbox assim como as demais informações.

Segue código:

Public Sub PRealizaLeituraXML()
     OpenFileDialog1.ShowDialog()
     Dim diretorio = OpenFileDialog1.FileName

     Dim docXML As New XmlDocument
     docXML.Load(diretorio)

     Dim strRetorno As String = "",
         noPai As XmlElement,
         noFilho As XmlElement,
         noNeto As XmlElement,
         noBisneto As XmlElement,
         noTetra As XmlElement,
         nodelist As XmlNodeList = docXML.DocumentElement.ChildNodes
     If Len(docXML.OuterXml) > 0 Then
         For Each noPai In nodelist 'Le os nós principais da NFe
             If noPai.Name = "NFe" Then
                 For Each noFilho In noPai 'Lê os Nós secundários
                     If noFilho.Name = "infNFe" Then 'Se for o cabecalho da NFe
                         For Each noNeto In noFilho 'Lê as Tags da NFe
                             If noNeto.Name = "ide" Then 'Verifica a identificação da NFe                                
                                 For Each noBisneto In noNeto 'Verifica os valores da NFe
                                     txtData.Text = noNeto.ChildNodes.Item(7).InnerText
                                     txtDocumento.Text = noNeto.ChildNodes.Item(6).InnerText
                                 Next
                             ElseIf noNeto.Name = "emit" Then 'Dados do Emitente da NFe                                
                                 For Each noBisneto In noNeto
                                     txtfornec.Text = noNeto.ChildNodes.Item(1).InnerText
                                     If noBisneto.Name = "enderEmit" Then 'Dados do Endereço do emitente
                                         For Each noTetra In noBisneto
                                         Next
                                     Else
                                     End If
                                 Next
                             ElseIf noNeto.Name = "dest" Then 'Dados do Destinatário                                
                                 For Each noBisneto In noNeto
                                     If noBisneto.Name = "enderDest" Then 'Dados do Endereço do emitente
                                         For Each noTetra In noBisneto
                                         Next
                                     Else
                                     End If
                                 Next
                             ElseIf noNeto.Name = "transp" Then 'Dados da Transportadora
                                 For Each noBisneto In noNeto
                                     If noBisneto.Name = "transporta" Then
                                         For Each noTetra In noBisneto
                                         Next
                                     End If
                                     If noBisneto.Name = "veicTransp" Then
                                         For Each noTetra In noBisneto
                                         Next
                                     End If
                                     If noBisneto.Name = "vol" Then
                                         For Each noTetra In noBisneto
                                         Next
                                     End If
                                 Next
                             ElseIf noNeto.Name = "infAdic" Then 'Dados do Destinatário                                
                                 For Each noBisneto In noNeto
                                     If noBisneto.Name = "obsCont" Then 'Dados do Endereço do emitente
                                         For Each noTetra In noBisneto
                                         Next
                                     Else
                                     End If
                                 Next
                             ElseIf noNeto.Name = "cobr" Then 'Dados do Destinatário                                
                                 For Each noBisneto In noNeto
                                     If noBisneto.Name = "fat" Then 'Dados da fatura
                                         For Each noTetra In noBisneto
                                         Next
                                     End If
                                     If noBisneto.Name = "dup" Then 'Dados da duplicata
                                         For Each noTetra In noBisneto
                                         Next
                                     End If
                                 Next
                             ElseIf noNeto.Name = "total" Then
                                 For Each noBisneto In noNeto
                                     If noBisneto.Name = "ICMSTot" Then
                                         For Each noTetra In noBisneto
                                             txtValor.Text = noBisneto.ChildNodes.Item(17).InnerText
                                         Next
                                     End If
                                 Next
                             ElseIf noNeto.Name = "entrega" Then 'Dados da Entrega
                                 For Each noBisneto In noNeto
                                 Next
                             ElseIf noNeto.Name = "det" Then 'Verifica os detalhes dos produtos
                                 For Each noBisneto In noNeto
                                     If noBisneto.Name = "prod" Then 'Dados dos Produtos
                                         For Each noTetra In noBisneto
                                         Next
                                     End If
                                     If noBisneto.Name = "ICMS" Then 'Dados do ICMS
                                         For Each noTetra In noBisneto
                                         Next
                                     End If
                                 Next
                             End If
                         Next
                     End If
                 Next
             End If
         Next
     End If
End Sub

Share this post


Link to post
Share on other sites

A nota fiscal tem vários vencimentos, estou precisando que ao importar os dados xml para o sistema, que os vencimentos sejam preenchidos em diferentes textbox conforme imagem abaixo:

 

a tag que preciso importar da nfe é a "dup".

 

pHMjVMY.jpg

1TLGVUu.png

Share this post


Link to post
Share on other sites

Ola amigo, como vai !!! Nem sei se ainda é possivel te ajudar pois faz tempo que fez a pergunta e eu sou novo aqui

Sabe quando existe mais de um item na Nfe, ele abre o campo <det> mas coloca na frente de campo o numero do item antes de fechar a tag, enhtao fica assim

<det nItem="1">

bla bla vla

</det>

<det nItem="2">

bla bla vla

</det>

<det nItem="3">

bla bla vla

</det>

Quem sabe não é o mesmo caso no campo DUP que você precisa ???

Espero ter ajudado, e só pra saber você usa VB6 ou VB.net, gostei da sua rotina, mas nao acho as referencias do openfiledialog1

Valeu

Léo

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By wagner9
      Olá companheiros,
       
      Preciso de ajuda para conseguir implementar um Feed de Notícias de um site parceiro em meu site. O pessoal do site parceiro me enviou os arquivos .xml, mas não consegui descobrir como implementar eles no meu site.
       
      Se alguem puder me ajudar, fico grato.
    • By manigold
      Estou com um pequeno problema nessa parte:
      $monsters = simplexml_load_file($otdir . '/data/monster/monsters.xml') or die('<b>Could not load monsters!</b>'); foreach($monsters->monster as $monster) { $loot = simplexml_load_file($otdir . '/data/monster/' . $monster['file']); if($loot) { if($item = $loot->loot->item){ A pagina mostra a lista de items corretamente mas se eu tenho um item dentro de outro item ,como nesse exemplo:
      <loot> <item id="2148" countmax="100" chance="33750" /> <item id="2148" countmax="100" chance="33750" /> <item id="2672" countmax="5" chance="80000" /> <item id="7399" chance="80" /> <item id="2392" chance="1428" /> <item id="2033" chance="3190" /> <item id="2547" countmax="7" chance="6700" /> <item id="5948" chance="3040" /> <item id="1987" chance="100000"> <!-- bag --> O PROBLEMA É NESSA PARTE <item id="5882" chance="5920" /> <item id="2498" chance="888" /> <item id="7378" countmax="3" chance="8800" /> <item id="2146" chance="5300" /> <item id="2414" chance="1500"/> <item id="2528" chance="2333" /> <item id="7402" chance="2000" /> <item id="2492" chance="730" /> </item> </loot> Os items dentro do item com id 1987 não são mostrados .
      Me desculpem se a explicação não esta muito boa , não entendo nada de php e xml ,eu agradeço se alguem puder me ajudar.
    • By juliosertori
      Fala galera tudo bem? Me da uma força, eu não sou especializado mas gosto de brincar as vezes com PHP etc, e faço uns sistemas pra meu uso mesmo.
       
      E estou precisando integrar a emissão de NFE utilizando a REST API da WEBMANIABR: https://webmaniabr.com/docs/rest-api-nfe/#emitir-nfe
       
      Só que tem um porém, eu trabalho apenas com PHP estruturado, eu já tenho os dados necessários no pedido, cliente, produtos etc para emitir a nota, mas eu não tenho a mínima ideia de como fazer um script para receber o POST com os dados, tratar na API e me retornar os dados, não sei nem onde pesquisar (além daqui rsrs) para iniciar isso.
       
      Podem me dar uma luz por favor?
       
      Muito obrigado!
    • By neoandrevictor
      Bom dia,
       
      Como faço para gerar um arquivo .doc (Microsoft Word) através de javascript com margens customizadas? Sei que para gerar o css corretamente tenho que gerar inline mas não consigo definir a margem de jeito algum.
       
      Poderiam me ajudar por gentileza?
    • By Jefferson andre
      Saudações mestres,
       
      Qual o comando utilizado para criar um arquivo em alguma pasta que eu selecionar onde eu possa ir escrevendo dentro as linhas do XML?
       
      Não quero algo pronto, preciso escrever linha a linha de acordo com o manual da Sefaz.
       
      Grato
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.