IMPORTAR PRODUTOS DO XML DA NFE EM VB6

FABRICIOWEB 18/01/2017 22:07:50
#470826
CADÊ OS PARCEIROS

STATUS
ASSINANDO OK
VALIDANDO OK
GERANDO OK
ENVIANDO OK
CANCELANDO OK
VALTERLUIS 19/01/2017 00:08:14
#470830
[quote]:
Bom dia,Amigos, já conseguir com ajuda,

listar os produto já consigo, nao sei se está correto, os impostos coloquei uma parte.

agora preciso internder como mostrar o número da nota, as faturas, o fornecedor....


OBS: claro, não está com boas práticas, mas aceito sugestões

assim ficou como na imagem







[c] Option Explicit
Dim Rst As New ADODB.Recordset
Dim Sql As String
[ô]Dim i As Integer

Private Sub Command3_Click()
Dim arq As String
[ô]arq = Dir(App.Path & [Ô]Dados*.xml[Ô])
[ô]Do While arq <> [Ô][Ô]
End Sub

Private Sub BtnNotaFiscal_Click()
On Error Resume Next
Dim doc As DOMDocument60, Temp(3) As String
Set doc = New DOMDocument60

Dim cprod As String, nitem As String, vuncom As String, qcom As String, xprod As String, vprod As String, cEAN As String
Dim CFOP As String, NCM As String
Dim sBn As String, uCom As String
Dim qtdProd As String

Dim vipi As String
Dim vicmsst As String
Dim vfrete As String
Dim vicmsdeson As String
Dim pICMS As String
Dim vbc As String
Dim vICMS As String
Dim voutro As String
Dim vdesc As String
Dim vseg As String
Dim nNF As String

Dim Caminho As String
Dim XMLdoc As Object
Dim i As Integer
Dim CountRow As Integer
Set XMLdoc = CreateObject([Ô]Microsoft.XMLDOM[Ô])
XMLdoc.async = False
[ô]Caminho = [Ô]caminho da sua nota fiscal completo[Ô]
Caminho = [Ô]C:DadosWS_000000127243186_21150510369130000150550010002488711111019055.xml[Ô]
XMLdoc.Load (Caminho)

qtdProd = XMLdoc.getElementsByTagName(sBn & [Ô]infNFe/det[Ô]).length [ô]Contando quantos itens tem o nó det (detalhes)
FlexGrid.Clear
For i = 1 To qtdProd - 1 [ô]Varrendo todos os itens
cprod = CStr(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/cProd[Ô]).Item(0).text)
nitem = CStr(XMLdoc.getElementsByTagName([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).Attributes(0).Value)
vuncom = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/vUnCom[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
qcom = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/qCom[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
xprod = CStr(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/xProd[Ô]).Item(0).text)
vprod = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/vProd[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
cEAN = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/cEAN[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
CFOP = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/CFOP[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
NCM = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/NCM[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
uCom = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/uCom[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
qcom = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/qcom[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
vuncom = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/vuncom[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])

If XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]imposto/ICMS[Ô]).length > 0 Then
pICMS = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]imposto/ICMS/ICMS00[Ô]).Item(0).getElementsByTagName([Ô]pICMS[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
End If

[ô]If XMLdoc.selectNodes([Ô]nfeProc/NFe /infNFe/det[Ô]).Item(i).getElementsByTagName([Ô]vICMSST[Ô]).length > 0 Then
[ô] vicmsst = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).getElementsByTagName([Ô]vICMSST[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
[ô]End If

[ô]If XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).getElementsByTagName([Ô]vFrete[Ô]).length > 0 Then
[ô] vfrete = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).getElementsByTagName([Ô]vFrete[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
[ô]End If

[ô]If XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).getElementsByTagName([Ô]vICMSDeson[Ô]).length > 0 Then
[ô] vicmsdeson = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).getElementsByTagName([Ô]vICMSDeson[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
[ô]End If

[ô]If XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).childNodes(1).childNodes(0).childNodes(0).selectNodes([Ô]pICMS[Ô]).length > 0 Then
[ô] pICMS = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).childNodes(1).childNodes(0).childNodes(0).selectNodes([Ô]pICMS[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô]) / 100
[ô]End If

[ô]If XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).childNodes(1).childNodes(0).childNodes(0).selectNodes([Ô]vBC[Ô]).length > 0 Then
[ô] vbc = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).childNodes(1).childNodes(0).childNodes(0).selectNodes([Ô]vBC[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
[ô]End If

[ô]If XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).childNodes(1).childNodes(0).childNodes(0).selectNodes([Ô]vICMS[Ô]).length > 0 Then
[ô] vICMS = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).childNodes(1).childNodes(0).childNodes(0).selectNodes([Ô]vICMS[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
[ô]End If

[ô]If XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/vOutro[Ô]).length > 0 Then
[ô] voutro = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/vOutro[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
[ô]End If

[ô]If XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/vDesc[Ô]).length > 0 Then
[ô] vdesc = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/vDesc[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
[ô]End If

[ô]If XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/vSeg[Ô]).length > 0 Then
[ô] vseg = Replace(XMLdoc.selectNodes([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).selectNodes([Ô]prod/vSeg[Ô]).Item(0).text, [Ô].[Ô], [Ô],[Ô])
[ô]End If

With FlexGrid
.Rows = .Rows + 1
CountRow = CountRow + 1
.CellDetails .Rows, 1, cprod
.CellDetails .Rows, 2, xprod
.CellDetails .Rows, 3, qcom, DT_RIGHT [ô]Unid
.CellDetails .Rows, 4, uCom, DT_RIGHT [ô]Quant
.CellDetails .Rows, 5, Format(vuncom, [Ô]###,##0.00[Ô]), DT_RIGHT [ô]Valor Unitário
.CellDetails .Rows, 6, Format(vprod, [Ô]###,##0.00[Ô]), DT_RIGHT
.CellDetails .Rows, 7, nitem, DT_CENTER
.CellDetails .Rows, 8, cEAN, DT_CENTER
.CellDetails .Rows, 9, CFOP, DT_CENTER
.CellDetails .Rows, 10, NCM, DT_LEFT

.CellDetails .Rows, 11, vipi
.CellDetails .Rows, 12, vicmsst
.CellDetails .Rows, 13, vfrete
.CellDetails .Rows, 14, vicmsdeson
.CellDetails .Rows, 15, pICMS
.CellDetails .Rows, 16, vbc
.CellDetails .Rows, 17, vICMS
.CellDetails .Rows, 18, voutro
.CellDetails .Rows, 19, vdesc
.CellDetails .Rows, 20, nNF

Rst.MoveNext
End With
Next i
Set XMLdoc = Nothing

End Sub

Private Sub chameleonButton1_Click()

End Sub

Private Sub Form_Load()

With FlexGrid
.AddColumn 1, [Ô]Id[Ô], , , 80
.AddColumn 2, [Ô]Descrição[Ô], ecgHdrTextALignLeft, , 500
.AddColumn 3, [Ô]Quant[Ô], ecgHdrTextALignRight, , 80
.AddColumn 4, [Ô]UN[Ô], ecgHdrTextALignCentre, , 40
.AddColumn 5, [Ô]V. Unit.[Ô], ecgHdrTextALignRight, , 100
.AddColumn 6, [Ô]V. Total[Ô], ecgHdrTextALignRight, , 100
.AddColumn 7, [Ô]Item[Ô], ecgHdrTextALignCentre, , 0
.AddColumn 8, [Ô]Cód.Barra[Ô], ecgHdrTextALignCentre, , 150
.AddColumn 9, [Ô]CFOP[Ô], ecgHdrTextALignCentre, , 70
.AddColumn 10, [Ô]NCM[Ô], ecgHdrTextALignLeft, , 80

[ô]**************************************************
.AddColumn 11, [Ô]Desc[Ô], ecgHdrTextALignLeft, , 80
.AddColumn 12, [Ô]Cód. ST[Ô], ecgHdrTextALignLeft, , 80
.AddColumn 13, [Ô]ICMS[Ô], ecgHdrTextALignLeft, , 80
.AddColumn 14, [Ô]IPI[Ô], ecgHdrTextALignLeft, , 80
.AddColumn 15, [Ô]ICMS[Ô], ecgHdrTextALignLeft, , 80
.AddColumn 16, [Ô]Cofins[Ô], ecgHdrTextALignLeft, , 80
.AddColumn 17, [Ô]IPI[Ô], ecgHdrTextALignLeft, , 80
.AddColumn 18, [Ô]PIS[Ô], ecgHdrTextALignLeft, , 80
.AddColumn 19, [Ô]Cofins[Ô], ecgHdrTextALignLeft, , 80
.AddColumn 20, [Ô]Cofins[Ô], ecgHdrTextALignLeft, , 80
End With

With FlexFGrid
.AddColumn 1, [Ô]Id[Ô], , , 0
.AddColumn 2, [Ô]Vencto[Ô], ecgHdrTextALignLeft, , 100
.AddColumn 3, [Ô]Vlr.[Ô], ecgHdrTextALignRight, , 100
.AddColumn 4, [Ô]Núm. Duplic[
FABRICIOWEB 19/01/2017 00:50:16
#470834
Nfe não tem muito segredo em vb6 o mais dificil seria enviar, mas você pode usar o uninfe
FABRICIOWEB 19/01/2017 15:42:18
#470854
se faltar a ocx do projetinho de importar nfe
MOREIRA 21/01/2017 10:10:19
#470919
Bom dia, pessoal... nosso amigo FABRICIOWEB, já está dando uma ajuda muito grande,. vamos finalizar esse projeto NFE ?
NLSOLUCOES 21/01/2017 14:15:02
#470920
Tarde Moreira e pessoal.

Bom, tive verificando aqui e este código do Fabricioweb, está funcionando parcialmente pois não carrega os itens da do XML.

Talvez eu esteja passando por cima e não vejo o problema.

Alguem conseguiu resolver isto?

MOREIRA 21/01/2017 15:00:41
#470922
Citação:

:
Tarde Moreira e pessoal.

Bom, tive verificando aqui e este código do Fabricioweb, está funcionando parcialmente pois não carrega os itens da do XML.

Talvez eu esteja passando por cima e não vejo o problema.

Alguem conseguiu resolver isto?




daqui a pouco de mando o código funcionando. aqui comigo.
FUTURA 21/01/2017 15:27:44
#470923
Eu testei aqui e carrega. apenas notas com 1 item não carregava, mas é só ajustar o FOR.. Código simples e funcional..
FUTURA 21/01/2017 15:31:47
#470924
Eu já tenho uma rotina que importa e outra que gera o xml. Mas pra assinar, validar e transmitir é com dll de terceiros em C#. Vamos compartilhar aqui o progresso e ver onde chegamos...
NLSOLUCOES 22/01/2017 19:00:51
#470934
Nada melhor que consultar um bom e velho livro quase cheirando a mofo.

Mudei apenas 2 linhas e alterei outra e já rodou, agora, não sei como rodou com vocês, nem me pergunte.

[ô]No botão Localizar;
[ô]duas linhas desativadas
[ô]Dim XMLdoc As Object
[ô]Set XMLdoc = CreateObject([Ô]Microsoft.XMLDOM[Ô]) [ô]

[ô]duas acrescentadas
Dim XMLdoc As DOMDocument
Set XMLdoc = New DOMDocument

[ô]uma alteração
nitem = CStr(XMLdoc.getElementsByTagName([Ô]nfeProc/NFe/infNFe/det[Ô]).Item(i).Attributes(0).nodeValue) [ô].Value)

Agora ao digitar o ponto [Ô]XMLdoc.[Ô] já vem a listagem e é só escolher e mandar bala

Vou tentar terminar os processos de importação até amanhã, add produtos e fornecedores.

Depois no próximo round vou pra Manifestação da NFe e depois gerar XML etc e etc e tal

Bom, pra quem como eu gosta de ler e consegue, vai o link pra consulta no site dos autores, vocês vão ver que tem muitos sites se baseando nele.
http://www.xml.com/pub/a/2000/07/12/vbasic/example.html
Abraços e quem puder contribuir com as demais seguintes, estamos aí ?
Página 3 de 3 [30 registro(s)]
Tópico encerrado , respostas não são mais permitidas