LER XML NF-E NO VB6

MEGADETH 31/05/2010 13:53:48
#343390
Ola Amigos

Estou querendo importar os itens lançando no arquivo do XML da NF-e para dentro do meus listiview do VB6
Preciso escolher apenas o Nod desejado pra importar os itens.

Desde já agradeço


F001E 02/06/2010 08:38:24
#343623
Então Megadeth...também estou Procurando isso....to montando uns esquemas aki...mas não sei se vai ficar bom...qualquer coisa te aviso...
DUHHH 02/06/2010 09:00:24
#343629
olha como eu fiz:

Private Sub Monta_cab_prod()
Dim Soma As Integer, Item As String, tag As String, tag2 As String, fArquivo As String

fArquivo : C:    este

docNFe.Load fArquivo

MsGrid1.Clear
MsGrid1.FormatString = [Ô]Auto numerador|Codigo do Produto |Descrição do Produto |CFOP |UM |Qtd |CST |Valor Unitario |Valor Total |%ICMS |%IPI [Ô]
MsGrid1.Rows = 2
Soma = 1
Item = VerificaItem([Ô]<det nItem=[Ô][Ô]1[Ô][Ô]>[Ô], [Ô]</det>[Ô], docNFe.xml)

Do While Item <> [Ô][Ô]

tag = [Ô]<det nItem=[Ô][Ô][Ô] & Soma & [Ô][Ô][Ô]>[Ô]
tag2 = [Ô]<det nItem=[Ô][Ô][Ô] & Soma + 1 & [Ô][Ô][Ô]>[Ô]
Item = VerificaItem(tag, tag2, docNFe.xml)

If Soma > 1 And Trim(Item) = [Ô][Ô] Then
Exit Do
End If

MsGrid1.TextMatrix(Soma, 0) = Soma
MsGrid1.TextMatrix(Soma, 1) = VerificaConteudo([Ô]<cProd>[Ô], [Ô]</cProd>[Ô], Item, [Ô]<prod>[Ô], [Ô]</prod>[Ô])
MsGrid1.TextMatrix(Soma, 2) = VerificaConteudo([Ô]<xProd>[Ô], [Ô]</xProd>[Ô], Item, [Ô]<prod>[Ô], [Ô]</prod>[Ô])
MsGrid1.TextMatrix(Soma, 3) = VerificaConteudo([Ô]<CFOP>[Ô], [Ô]</CFOP>[Ô], Item, [Ô]<prod>[Ô], [Ô]</prod>[Ô])
MsGrid1.TextMatrix(Soma, 4) = VerificaConteudo([Ô]<uCom>[Ô], [Ô]</uCom>[Ô], Item, [Ô]<prod>[Ô], [Ô]</prod>[Ô])
MsGrid1.TextMatrix(Soma, 5) = VerificaConteudo([Ô]<qCom>[Ô], [Ô]</qCom>[Ô], Item, [Ô]<prod>[Ô], [Ô]</prod>[Ô])
MsGrid1.TextMatrix(Soma, 6) = VerificaConteudo([Ô]<CST>[Ô], [Ô]</CST>[Ô], Item, [Ô]<ICMS>[Ô], [Ô]</ICMS>[Ô])
MsGrid1.TextMatrix(Soma, 7) = VerificaConteudo([Ô]<vUnCom>[Ô], [Ô]</vUnCom>[Ô], Item, [Ô]<prod>[Ô], [Ô]</prod>[Ô])
MsGrid1.TextMatrix(Soma, 8) = VerificaConteudo([Ô]<vProd>[Ô], [Ô]</vProd>[Ô], Item, [Ô]<prod>[Ô], [Ô]</prod>[Ô])
MsGrid1.TextMatrix(Soma, 9) = VerificaConteudo([Ô]<pICMS>[Ô], [Ô]</pICMS>[Ô], Item, [Ô]<ICMS>[Ô], [Ô]</ICMS>[Ô], True)
MsGrid1.TextMatrix(Soma, 10) = VerificaConteudo([Ô]<pIPI>[Ô], [Ô]</pIPI>[Ô], Item, [Ô]<IPI>[Ô], [Ô]</IPI>[Ô], True)

Soma = Soma + 1
MsGrid1.AddItem (Soma)
Loop

End Sub

Private Function VerificaItem(ByVal sTagPaiIni As String, ByVal sTagPaiFim As String, ByVal strResp As String) As String
On Error Resume Next

Dim lPos1 As Long, lPos2 As Long, lPos3 As Long, lPos4 As Long

VerificaItem = [Ô][Ô]

[ô]verificando valor do cStat resultante do web service a partir do final do código XML
lPos1 = InStrRev(strResp, sTagPaiIni) + Len(sTagPaiIni)
lPos2 = InStrRev(strResp, sTagPaiFim)

If lPos1 > Len(sTagPaiIni) And lPos2 > lPos1 Then
strResp = Mid(strResp, lPos1, lPos2 - lPos1)
VerificaItem = strResp
Exit Function
End If

lPos1 = InStrRev(strResp, sTagPaiIni) + Len(sTagPaiIni)
lPos2 = InStrRev(strResp, [Ô]</det>[Ô])

If lPos1 > Len(sTagPaiIni) And lPos2 > lPos1 Then
strResp = Mid(strResp, lPos1, lPos2 - lPos1)
VerificaItem = strResp
Exit Function
End If

End Function
EDUFS 02/06/2010 14:23:02
#343697
Eu uso o form em anexo
Tenho uma tabela com os mesmos nomes do arquivo xml da NFe
REGINALDORRP 15/08/2011 20:36:24
#381784
Resposta escolhida
Citação:

:
olha como eu fiz:

Private Sub Monta_cab_prod()
Dim Soma As Integer, Item As String, tag As String, tag2 As String, fArquivo As String

fArquivo : C: este

docNFe.Load fArquivo

MsGrid1.Clear
MsGrid1.FormatString = [Ô]Auto numerador|Codigo do Produto |Descrição do Produto |CFOP |UM |Qtd |CST |Valor Unitario |Valor Total |%ICMS |%IPI [Ô]
MsGrid1.Rows = 2
Soma = 1
Item = VerificaItem([Ô]<det nItem=[Ô][Ô]1[Ô][Ô]>[Ô], [Ô]</det>[Ô], docNFe.xml)

Do While Item <> [Ô][Ô]

tag = [Ô]<det nItem=[Ô][Ô][Ô] & Soma & [Ô][Ô][Ô]>[Ô]
tag2 = [Ô]<det nItem=[Ô][Ô][Ô] & Soma + 1 & [Ô][Ô][Ô]>[Ô]
Item = VerificaItem(tag, tag2, docNFe.xml)

If Soma > 1 And Trim(Item) = [Ô][Ô] Then
Exit Do
End If

MsGrid1.TextMatrix(Soma, 0) = Soma
MsGrid1.TextMatrix(Soma, 1) = VerificaConteudo([Ô]<cProd>[Ô], [Ô]</cProd>[Ô], Item, [Ô]<prod>[Ô], [Ô]</prod>[Ô])
MsGrid1.TextMatrix(Soma, 2) = VerificaConteudo([Ô]<xProd>[Ô], [Ô]</xProd>[Ô], Item, [Ô]<prod>[Ô], [Ô]</prod>[Ô])
MsGrid1.TextMatrix(Soma, 3) = VerificaConteudo([Ô]<CFOP>[Ô], [Ô]</CFOP>[Ô], Item, [Ô]<prod>[Ô], [Ô]</prod>[Ô])
MsGrid1.TextMatrix(Soma, 4) = VerificaConteudo([Ô]<uCom>[Ô], [Ô]</uCom>[Ô], Item, [Ô]<prod>[Ô], [Ô]</prod>[Ô])
MsGrid1.TextMatrix(Soma, 5) = VerificaConteudo([Ô]<qCom>[Ô], [Ô]</qCom>[Ô], Item, [Ô]<prod>[Ô], [Ô]</prod>[Ô])
MsGrid1.TextMatrix(Soma, 6) = VerificaConteudo([Ô]<CST>[Ô], [Ô]</CST>[Ô], Item, [Ô]<ICMS>[Ô], [Ô]</ICMS>[Ô])
MsGrid1.TextMatrix(Soma, 7) = VerificaConteudo([Ô]<vUnCom>[Ô], [Ô]</vUnCom>[Ô], Item, [Ô]<prod>[Ô], [Ô]</prod>[Ô])
MsGrid1.TextMatrix(Soma, 8) = VerificaConteudo([Ô]<vProd>[Ô], [Ô]</vProd>[Ô], Item, [Ô]<prod>[Ô], [Ô]</prod>[Ô])
MsGrid1.TextMatrix(Soma, 9) = VerificaConteudo([Ô]<pICMS>[Ô], [Ô]</pICMS>[Ô], Item, [Ô]<ICMS>[Ô], [Ô]</ICMS>[Ô], True)
MsGrid1.TextMatrix(Soma, 10) = VerificaConteudo([Ô]<pIPI>[Ô], [Ô]</pIPI>[Ô], Item, [Ô]<IPI>[Ô], [Ô]</IPI>[Ô], True)

Soma = Soma + 1
MsGrid1.AddItem (Soma)
Loop

End Sub

Private Function VerificaItem(ByVal sTagPaiIni As String, ByVal sTagPaiFim As String, ByVal strResp As String) As String
On Error Resume Next

Dim lPos1 As Long, lPos2 As Long, lPos3 As Long, lPos4 As Long

VerificaItem = [Ô][Ô]

[ô]verificando valor do cStat resultante do web service a partir do final do código XML
lPos1 = InStrRev(strResp, sTagPaiIni) + Len(sTagPaiIni)
lPos2 = InStrRev(strResp, sTagPaiFim)

If lPos1 > Len(sTagPaiIni) And lPos2 > lPos1 Then
strResp = Mid(strResp, lPos1, lPos2 - lPos1)
VerificaItem = strResp
Exit Function
End If

lPos1 = InStrRev(strResp, sTagPaiIni) + Len(sTagPaiIni)
lPos2 = InStrRev(strResp, [Ô]</det>[Ô])

If lPos1 > Len(sTagPaiIni) And lPos2 > lPos1 Then
strResp = Mid(strResp, lPos1, lPos2 - lPos1)
VerificaItem = strResp
Exit Function
End If

End Function



*****************************************************************************

Rapaz, teria como postar a função [txt-color=#e80000]VerificaConteudo[/txt-color] pois não consegui finalizar o codigo
sem esta parte....
dá uma maozinha ai fera....
Valeu.
MITO 18/08/2011 09:41:15
#381950
Ola galera

Tenho o esquema montado e funcionando ele importa para um BD Access, se alguem quizer entre em contato pelo email mito@erbs.com.br

Sds,

Mito
Tópico encerrado , respostas não são mais permitidas