TAG HTML PORTAL NACIONAL

LEONARDOSILVEIR 02/06/2011 10:47:43
#375663
Hun estou montando o meu encima do layout 2.0, se possivel depois disponibiliza seu programa pra vermos como ficou, meu tempo está um pouco curto pra terminar o meu, mas aos poucos vou concluir e assim que fechar disponibilizo pra todos testarem.
ALTAIR148 02/06/2011 11:36:30
#375666
LEONARDOSILVEIR, segue ai o meu código, nele tem que melhorar muita coisa ainda, nesse ai só foi para testar mesmo, nesse exemplo eu carrego os produtos da nf e alguns dados dela tbm e depois gravo em um banco MYSQL. Estou trabalhando aqui tbm já na 2.00.
LEONARDOSILVEIR 04/06/2011 02:54:03
#375825
Veja um programa feito com a mesma linha de raciocinio que estamos seguindo.
www.gvsoft.com.br/download/installcapturenfe.exe
ALTAIR148 04/06/2011 16:47:32
#375859
Cara com as dicas do PEGUDO achei um jeito aqui ótimo para capturar os dados, segue ai para você dar uma analisada, nele vai dar para você ter mais uma noção se caso desejar pegar mais algum dado, da forma que tô usando agora ele funciona com os layout 1.00, 1.10 e 2.00.

Um detalhe que adicionei no projeto, é que para você capturar os dados você tem que clicar no botão [Ô]Buscar dados[Ô], o interessante é que ele só fica habilitado quando toda a nota for carregada.
LEONARDOSILVEIR 06/06/2011 12:11:37
#375956
Amigos, cheguei em um ponto e nao sei qual a melhor saida, veja abaixo no html que disponibilizei que nos dados do emitente e destinatário, os nome dos campos [Ô]label[Ô] cnpj, nome/razao social, inscrição estadual e UF são os mesmo, ai da forma que estava fazendo como demostrado abaixo, um valor acaba sobrepondo o outro.

Dim Spans As HtmlElementCollection = .Document.GetElementsByTagName([Ô]span[Ô])
If Spans.Item(B).InnerText = [Ô]CNPJ[Ô] Then
B += 1
CNPJ.Text = Spans.Item(B).InnerText : B += 1
End If
Next


EMITENTE
</td></tr></table><table align=[Ô]center[Ô] class=[Ô]textoVerdana7[Ô] width=[Ô]98%[Ô]><tr><td valign=[Ô]top[Ô] style=[Ô]height: 28px[Ô] width=[Ô]25%[Ô]><span class=[Ô]TextoFundoBrancoNegrito[Ô]>
CNPJ<br /></span><span class=[Ô]linha[Ô]>03391468000142</span></td><td valign=[Ô]top[Ô] style=[Ô]height: 28px[Ô] width=[Ô]40%[Ô]><span class=[Ô]TextoFundoBrancoNegrito[Ô]>
Nome/Razão Social<br /></span><span class=[Ô]linha[Ô]>SUASOLDA COM TECNOLOGIA EM SOLDAGEM LTDA</span></td><td valign=[Ô]top[Ô] width=[Ô]23%[Ô]><span class=[Ô]TextoFundoBrancoNegrito[Ô]>
Inscrição Estadual<br /></span><span class=[Ô]linha[Ô]>582488780118</span></td><td valign=[Ô]top[Ô] width=[Ô]12%[Ô]><span class=[Ô]TextoFundoBrancoNegrito[Ô]>
UF<br /></span><span class=[Ô]linha[Ô]>SP</span></td></tr></table><table align=[Ô]center[Ô] width=[Ô]98%[Ô]><tr class=[Ô]TextoFundoBranco[Ô]><td class=[Ô]TituloAreaRestrita[Ô]>
DESTINATÁRIO
</td></tr></table><table align=[Ô]center[Ô] class=[Ô]textoVerdana7[Ô] width=[Ô]98%[Ô]><tr><td valign=[Ô]top[Ô] width=[Ô]25%[Ô]><span class=[Ô]TextoFundoBrancoNegrito[Ô]>
CNPJ<br /></span><span class=[Ô]linha[Ô]>54305743001170</span></td><td valign=[Ô]top[Ô] width=[Ô]40%[Ô]><span class=[Ô]TextoFundoBrancoNegrito[Ô]>
Nome/Razão Social<br /></span><span class=[Ô]linha[Ô]>M M C AUTOMOTORES DO BRASIL S/A</span></td><td valign=[Ô]top[Ô] width=[Ô]23%[Ô]><span class=[Ô]TextoFundoBrancoNegrito[Ô]>
Inscrição Estadual<br /></span><span class=[Ô]linha[Ô]>102982244</span></td><TD valign=[Ô]top[Ô] width=[Ô]12%[Ô]><span class=[Ô]TextoFundoBrancoNegrito[Ô]>
UF<br /></span><span class=[Ô]linha[Ô]>GO</span></TD></tr></table><table align=[Ô]center[Ô] width=[Ô]98%[Ô]><tr class=[Ô]TextoFundoBranco[Ô]><td class=[Ô]TituloAreaRestrita[Ô]>
ALTAIR148 06/06/2011 17:21:14
#375997
Boa tarde,

Tente assim:

Dim Spans As HtmlElementCollection = .Document.GetElementsByTagName([Ô]span[Ô])
If Spans.Item(B).InnerText = [Ô]EMITENTE[Ô] Then
B += 2
CNPJ.Text = Spans.Item(B).InnerText : B += 1
End If
Next

Abraços.
LEONARDOSILVEIR 06/06/2011 19:30:53
#376009
Altair [Ô]EMITENTE[Ô] nao está dentro do span innertext, ai nao entra dentro da condição if.
ALTAIR148 06/06/2011 20:13:27
#376014
Da forma que fiz abaixo, testei e deu certo com a chave que você passou aqui no fórum.

Dim ListaSpan As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName([Ô]Span[Ô])
For B = 0 To ListaSpan.Count - 1 [ô]Faz um loop entre todas as tags span que existem na página
If ListaSpan.Item(B).InnerText = [Ô]Valor Total da Nota Fiscal[Ô] Then [ô]Localiza a span que contém seu texto iqual a [Ô]Empresa[Ô]
B += 3
cnpj1.Text = ListaSpan.Item(B).InnerText [ô]Joga dentro do ListView o conteúdo de span
End If

Next


Abraços
LEONARDOSILVEIR 07/06/2011 08:30:38
#376032
Altair me deparei com mais um problema, quando faço a busca no ([Ô]Código EAN Tributável[Ô]), programa da erro, pq a tag está vazia e para a execução dos proximos campos, como posso tratar isso no codigo?
exemplo do codigo html (Código EAN Tributável<br /></span><span class=[Ô]linha[Ô]></span></td><td valign=[Ô]top[Ô] style=[Ô]height: 37px; width: 33%;[Ô]><span class=[Ô]TextoFundoBrancoNegrito[Ô]>)

Dim ListaSpan As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName([Ô]Span[Ô])
For B = 0 To ListaSpan.Count - 1 [ô]Faz um loop entre todas as tags span que existem na página
If ListaSpan.Item(B).InnerText = [Ô]Código EAN Tributável[Ô] Then [ô]como >< está vazio o programa para a execução do next
B += 3
cnpj1.Text = ListaSpan.Item(B).InnerText
End If

Next

ALTAIR148 07/06/2011 08:44:27
#376033
Muito simples, no último exemplo que te mandei, nele existe um IF para cada campo
Ex:

If ListaSpan.Item(A).InnerText = [Ô]Alíquota do ICMS Normal [Ô] Then [ô]Localiza a span que contém seu texto iqual a [Ô]Empresa[Ô]

A += 1
valiquota = ListaSpan.Item(A).InnerText [ô]Joga dentro do ListView o conteúdo de span

End If
If ListaSpan.Item(A).InnerText = [Ô]Tributação do ICMS[Ô] Then [ô]Localiza a span que contém seu texto iqual a [Ô]Empresa[Ô]

A += 1
vst = ListaSpan.Item(A).InnerText [ô]Joga dentro do ListView o conteúdo de span

End If


Caso algum desses campos estiver em branco ele simplesmente não vai trazer nenhum dado para seu formulário desse campo, e ele continua a varrer os demais campos, sem ter nenhuma intervenção do campo anterior que estiver em branco.
Página 3 de 6 [51 registro(s)]
Tópico encerrado , respostas não são mais permitidas