FONTE NFE VB.NET

FOXMAN 14/07/2010 17:36:25
#347332
AGORA O XML AUTORIZADO

OS ARQUIVOS FORAM SALVOS NO FORMATO TEXTO PARA ENVIAR AO SITE, é SÓ SALVAR COMO XML
OTAVIOFAVERO 14/07/2010 17:46:57
#347335
Citação:

:
Pessoal,

Como posso fazer para saber se determinada TAG existe em um Node (ChildNodes) do XML atraves de um nome.

Exemplo :

Preciso saber se na TAG imposto tem o NÓ pMAVAST.

Detalhamento.Imposto.Icms.Icms10.pMVAST = IsNothing(InnerNode4.ChildNodes(0).ChildNodes(11).InnerText

Acontece que nem sempre ele(o nó pMVAST) será passado no xml, o que ocorre erro de referencia, pois não existe.

Outra coisa :

Como poderia pegar o valor desse nó através do nome ???


P.S. Daniel, show de bolo o projeto, deveríamos colocá-lo no codeplex, como vc mesmo cogitou.
Estava pensando em uma forma de DINAMIZAR a leitura dos dados para a impressão do DANFE tendo como referência o nome da TAG.

Você já em algo dessa forma ?










eu faço assim para dinamizar


Try
Dim AbreNFeXmldet_imposto = AbreNFeXmldet.DataSet.Tables([Ô]imposto[Ô]).Rows(bus)




Try

Dim AbreNFeXmldet_imposto_ICMS = AbreNFeXmldet_imposto.Table.DataSet.Tables([Ô]icms[Ô]).Rows(0)

Try

Try
Imposto_ICMSICMS00 = AbreNFeXmldet_imposto_ICMS.Table.DataSet.Tables([Ô]ICMS00[Ô]).Rows(bus)
Catch ex As Exception

End Try
Try
Imposto_ICMSICMS00 = AbreNFeXmldet_imposto_ICMS.Table.DataSet.Tables([Ô]ICMS10[Ô]).Rows(bus)
Catch ex As Exception

End Try
Try
Imposto_ICMSICMS00 = AbreNFeXmldet_imposto_ICMS.Table.DataSet.Tables([Ô]ICMS20[Ô]).Rows(bus)
Catch ex As Exception

End Try
Try
Imposto_ICMSICMS00 = AbreNFeXmldet_imposto_ICMS.Table.DataSet.Tables([Ô]ICMS30[Ô]).Rows(bus)
Catch ex As Exception

End Try
Try
Imposto_ICMSICMS00 = AbreNFeXmldet_imposto_ICMS.Table.DataSet.Tables([Ô]ICMS40[Ô]).Rows(bus)
Catch ex As Exception

End Try
Try
Imposto_ICMSICMS00 = AbreNFeXmldet_imposto_ICMS.Table.DataSet.Tables([Ô]ICMS51[Ô]).Rows(bus)
Catch ex As Exception

End Try
Try
Imposto_ICMSICMS00 = AbreNFeXmldet_imposto_ICMS.Table.DataSet.Tables([Ô]ICMS60[Ô]).Rows(bus)
Catch ex As Exception

End Try

Try
Imposto_ICMSICMS00 = AbreNFeXmldet_imposto_ICMS.Table.DataSet.Tables([Ô]ICMS70[Ô]).Rows(bus)
Catch ex As Exception

End Try

[ô]Imposto_ICMSICMS00 = AbreNFeXmldet_imposto_ICMS.Table.DataSet.Tables([Ô]ICMS00[Ô]).Rows(bus)

Try
Imposto_ICMSICMS00 = AbreNFeXmldet_imposto_ICMS.Table.DataSet.Tables([Ô]ICMS30[Ô]).Rows(bus)
Catch ex As Exception

End Try

Try
Imposto_ICMSICMS00 = AbreNFeXmldet_imposto_ICMS.Table.DataSet.Tables([Ô]ICMS40[Ô]).Rows(bus)
Catch ex As Exception

End Try

Try
Imposto_ICMSICMS00 = AbreNFeXmldet_imposto_ICMS.Table.DataSet.Tables([Ô]ICMS51[Ô]).Rows(bus)
Catch ex As Exception

End Try

Try
Imposto_ICMSICMS00 = AbreNFeXmldet_imposto_ICMS.Table.DataSet.Tables([Ô]ICMS60[Ô]).Rows(bus)
Catch ex As Exception

End Try

Try
Imposto_ICMSICMS00 = AbreNFeXmldet_imposto_ICMS.Table.DataSet.Tables([Ô]ICMS70[Ô]).Rows(bus)
Catch ex As Exception

End Try

Dim CSTV



Try
Try
CSTV = (Imposto_ICMSICMS00.Item([Ô]orig[Ô])) [ô]

Catch ex As Exception
CSTV = [Ô]0[Ô]
End Try
Try
CSTV = CSTV & (Imposto_ICMSICMS00.Item([Ô]CST[Ô])) [ô]
Catch ex As Exception
CSTV = CSTV & [Ô]00[Ô]
End Try

Catch ex As Exception
CSTV = [Ô]000[Ô]
End Try
PROD.DCST = CSTV

Try
PROD.DBCALC_ICMS = Formatox(Imposto_ICMSICMS00.Item([Ô]vBC[Ô]), [Ô]moeda[Ô]) [ô]
Catch ex As Exception
PROD.DBCALC_ICMS = [Ô]0,00[Ô]
End Try

Try
PROD.DVALORICMS = Formatox(Imposto_ICMSICMS00.Item([Ô]vICMS[Ô]), [Ô]moeda[Ô]) [ô]
Catch ex As Exception
PROD.DVALORICMS = [Ô]0,00[Ô]
End Try

Try
PROD.DBCALC_ICMS_ST = Formatox(Imposto_ICMSICMS00.Item([Ô]vBCST[Ô]), [Ô]moeda[Ô]) [ô]
Catch ex As Exception
PROD.DBCALC_ICMS_ST = [Ô]0,00[Ô]
End Try

Try
PROD.DVALORICMS_ST = Formatox(Imposto_ICMSICMS00.Item([Ô]vICMSST[Ô]), [Ô]moeda[Ô]) [ô]
Catch ex As Exception
PROD.DVALORICMS_ST = [Ô]0,00[Ô]
End Try


Try
PROD.DBCALC_ICMS_ST = Imposto_ICMSICMS00.Item([Ô]vBCST[Ô]) [ô]
Catch ex As Exception

End Try


Try
PROD.DVALORICMS_ST = Formatox(Imposto_ICMSICMS00.Item([Ô]vICMSST[Ô]), [Ô]moeda[Ô]) [ô]
Catch ex As Exception
PROD.DVALORICMS_ST = [Ô]0,00[Ô]
End Try


Try
PROD.DALIQUOTAICMS = Formatox(Imposto_ICMSICMS00.Item([Ô]pICMS[Ô]), [Ô]imposto[Ô]) [ô]
Catch ex As Exception
PROD.DALIQUOTAICMS = [Ô]0[Ô]
End Try


Catch ex As Exception
MsgBox(ex)
End Try


Catch ex As Exception

End Try


Try
Imposto_ipi = AbreNFeXmldet_imposto.Table.DataSet.Tables([Ô]ipi[Ô]).Rows(0)
Imposto_ipiIPITrib = Imposto_ipi.Table.DataSet.Tables([Ô]IPITrib[Ô]).Rows(bus)
Try
PROD.DVALORIPI = Formatox(Imposto_ipiIPITrib.Item([Ô]vIPI[Ô]), [Ô]moeda[Ô])
Catch ex As Exception
PROD.DVALORIPI = [Ô]0,00[Ô]
End Try

Try
PROD.DALIQUOTAIPI = Formatox(Imposto_ipiIPITrib.item([Ô]pIPI[Ô]), [Ô]imposto[Ô])
Catch ex As Exception
PROD.DALIQUOTAIPI = [Ô]0[Ô]
End Try

Catch ex As Exception
PROD.DVALORIPI = [Ô]0,00[Ô]
PROD.DALIQUOTAIPI = [Ô]0[Ô]
End Try

Catch ex As Exception

End Try




IDanfe.AddProdutosDanfe.Add(PROD)

Catch ex As Exception

End Try



abç
FOXMAN 14/07/2010 19:15:58
#347347
Eu ja havia resolvido com xmlPaqth

Pode-se jogar num laço o código abaixo passando como parametro o nome da tag.


exemplo


[ô]Adicionando a TAG ao NAMESPACE do xmlNamespacesMananger
Dim nsProtocolo As New XmlNamespaceManager(xmlProtocolo.NameTable)
nsProtocolo.AddNamespace([Ô]nfe[Ô], [Ô]http://www.portalfiscal.inf.br/nfe[Ô])
Dim xpathNavProtocolo As XPathNavigator = xmlProtocolo.CreateNavigator()

Dim nsNFE As New XmlNamespaceManager(xmlNFE.NameTable)
nsNFE.AddNamespace([Ô]nfe[Ô], [Ô]http://www.portalfiscal.inf.br/nfe[Ô])
Dim xpathNavNFE As XPathNavigator = xmlNFE.CreateNavigator()

[ô] selecionando a TAG NFE
Dim nodeNFE As XPathNavigator = xpathNavNFE.SelectSingleNode([Ô]//nfe:NFe[Ô], nsNFE)
Dim TagNFEn As String = nodeNFE.GetAttribute([Ô]NFe[Ô], [Ô][Ô])
[ô] selecionando a TAG protNFE
Dim nodeProtocolo As XPathNavigator = xpathNavProtocolo.SelectSingleNode([Ô]//nfe:protNFe[Ô], nsProtocolo)
Dim TagProtocolon As String = nodeProtocolo.GetAttribute([Ô]protNFe[Ô], [Ô][Ô])

[ô]Declarando os pathNavegator
Dim TAGNFe, TAGprotNFE As XPathNavigator
[ô]Atribuindo a TAG selecionada ao PathNavegator

TAGNFe = xpathNavNFE.SelectSingleNode([Ô]//nfe:NFe[Ô], nsNFE)

TAGprotNFE = xpathNavProtocolo.SelectSingleNode([Ô]//nfe:protNFe[Ô], nsProtocolo)


Muito dinamico isso ae, eh soh adptar
BIODIESEL 14/07/2010 19:58:51
#347353
Daniel,

Utilizando o seu desenvolvimento, com os seus dados, ele dá erro de UF diferente do certificado (até aí, beleza porque vc está no RS e eu em SP).

Alterei as urls de recepcao e retorno para SP e utilizei os meus dados de SP.

Deu o seguinte erro nessa linha dentro da classe C_WebService, e da função ConsultaRecLote:

If InnerNode.Name = [Ô]infProt[Ô] Then
[ô]PEGA A VARIAVEL ID QUE é UM ATRIBUTO E NAO UM ITEM
VarRecibo.Id = InnerNode.Attributes.ItemOf([Ô]Id[Ô]).InnerText <-------- erro

erro: Object reference not set to an instance of an object

O que pode ser isso?


Abraço.

Ricardo
FOXMAN 14/07/2010 20:43:04
#347361
Citação:

:
Daniel,

Utilizando o seu desenvolvimento, com os seus dados, ele dá erro de UF diferente do certificado (até aí, beleza porque vc está no RS e eu em SP).

Alterei as urls de recepcao e retorno para SP e utilizei os meus dados de SP.

Deu o seguinte erro nessa linha dentro da classe C_WebService, e da função ConsultaRecLote:

If InnerNode.Name = [Ô]infProt[Ô] Then
[ô]PEGA A VARIAVEL ID QUE é UM ATRIBUTO E NAO UM ITEM
VarRecibo.Id = InnerNode.Attributes.ItemOf([Ô]Id[Ô]).InnerText <-------- erro

erro: Object reference not set to an instance of an object

O que pode ser isso?


Abraço.

Ricardo



Rapaz tive o mesmo erro, e observei que o retorno naum possuia esse elemento,
Eu comentei a linha e deixar passar.

Tente ae.
DANIELCPAETE 14/07/2010 20:53:42
#347364
Cara acho que o retorno de SP não envia o ID.

DANIELCPAETE 14/07/2010 21:24:29
#347366
Bom galera conforme prometi segue projeto publicado no codeplex http://nfevbnet.codeplex.com aguardo vocês para elegermos os colaboradores do projeto.
FOXMAN 14/07/2010 21:31:38
#347367
Citação:

:
Bom galera conforme prometi segue projeto publicado no codeplex http://nfevbnet.codeplex.com aguardo vocês para elegermos os colaboradores do projeto.


é soh me add lah
meu usuario 'e Admilson
DANIELCPAETE 15/07/2010 00:16:33
#347373
Ai galera segue nova versão com suporte a geração de DANFE no formato retrato com os créditos para o colega Nilson Porcelli.

DANIELCPAETE 15/07/2010 00:32:30
#347375
Ai gente será que alguém se anima a montar um form estilo o da receita para mostrar todas as funcionalidades do projeto acho que ficaria muito melhor para quem está começando.

Eu para colaborar prometo passar para a versão 2.0 até o final deste mês e melhorar a rotina de leitura que conto com a ajuda de algum colega para identificarmos a melhor forma.

FOXMAN lhe adicionei aguardo outros colegas para ajudarem no projeto.
Página 25 de 228 [2276 registro(s)]
Faça seu login para responder