ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Importar XML de NFe

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> NFe
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
jrinfsilva
Novato
Novato


Registrado: Terça-Feira, 1 de Outubro de 2019
Mensagens: 1

MensagemEnviada: Ter Out 01, 2019 6:16 pm    Assunto: Importar XML de NFe Responder com Citação

Boa noite pessoal,

Estou importando os dados de uma NFe (Nota Fiscal de Entrada) no formato XML mas não estou conseguindo pegar os Nodes dos produtos.

Vou colocar como estou fazendo para pegar os dados


procedure TForm1.Button1Click(Sender: TObject);
var
XMLDoc: IXMLDocument;
nfeProc, NFe, infNFe, ide, emit, enderemit, dest, enderDest, det, prod, cProd : IXMLNode;
w_cont : Integer;
begin
Memo1.Clear;
OpenDialog1.Execute;
XMLDoc := TXMLDocument.Create(nil);
XMLDoc.LoadFromFile(OpenDialog1.FileName);
XMLDoc.Active := True;

// nfeProc := XMLDoc.DocumentElement.ChildNodes.FindNode('nfeProc');
nfeProc := XMLDoc.ChildNodes.FindNode('nfeProc');
NFe := nfeProc.ChildNodes.FindNode('NFe');
infNFe := NFe.ChildNodes.FindNode('infNFe');

// identificação da NF
ide := infNFe.ChildNodes.FindNode('ide');
Memo1.Lines.Add('------------------------------------------------------');
Memo1.Lines.Add('IDENTIFICAÇÃO DA NF');
Memo1.Lines.Add('------------------------------------------------------');
Memo1.Lines.Add('UF: '+ide.ChildNodes['cUF'].Text);
Memo1.Lines.Add('Cod.NF: '+ide.ChildNodes['cNF'].Text);
Memo1.Lines.Add('Natureza: '+ide.ChildNodes['natOp'].Text);
Memo1.Lines.Add('Modelo: '+ide.ChildNodes['mod'].Text);
Memo1.Lines.Add('Série: '+ide.ChildNodes['serie'].Text);
Memo1.Lines.Add('Núm.NF: '+ide.ChildNodes['nNF'].Text);
Memo1.Lines.Add('Data Emissão: '+ide.ChildNodes['dhEmi'].Text);
Memo1.Lines.Add('Data Saída: '+ide.ChildNodes['dhSaiEnt'].Text);
Memo1.Lines.Add('------------------------------------------------------');

// dados do emissor
emit := infNFe.ChildNodes.FindNode('emit');
Memo1.Lines.Add('------------------------------------------------------');
Memo1.Lines.Add('DADOS DO EMISSOR');
Memo1.Lines.Add('------------------------------------------------------');
Memo1.Lines.Add('CNPJ: '+emit.ChildNodes['CNPJ'].Text);
Memo1.Lines.Add('Razão Social: '+emit.ChildNodes['xNome'].Text);
Memo1.Lines.Add('Nome de Fantasia: '+emit.ChildNodes['xFant'].Text);
Memo1.Lines.Add('IE: '+emit.ChildNodes['IE'].Text);
Memo1.Lines.Add('CRT: '+emit.ChildNodes['CRT'].Text);
// endereço do emissor
enderemit := emit.ChildNodes.FindNode('enderEmit');
Memo1.Lines.Add('Logradouro: '+enderemit.ChildNodes['xLgr'].Text);
Memo1.Lines.Add('Número: '+enderemit.ChildNodes['nro'].Text);
Memo1.Lines.Add('Caixa Postal: '+enderemit.ChildNodes['xCp'].Text);
Memo1.Lines.Add('Bairro: '+enderemit.ChildNodes['xBairro'].Text);
Memo1.Lines.Add('Código do Município: '+enderemit.ChildNodes['cMun'].Text);
Memo1.Lines.Add('Município: '+enderemit.ChildNodes['xMun'].Text);
Memo1.Lines.Add('UF: '+enderemit.ChildNodes['UF'].Text);
Memo1.Lines.Add('CEP: '+enderemit.ChildNodes['CEP'].Text);
Memo1.Lines.Add('Código do País: '+enderemit.ChildNodes['cPais'].Text);
Memo1.Lines.Add('País: '+enderemit.ChildNodes['xPais'].Text);
Memo1.Lines.Add('Telefone: '+enderemit.ChildNodes['fone'].Text);
Memo1.Lines.Add('------------------------------------------------------');

// dados do destinatário
dest := infNFe.ChildNodes.FindNode('dest');
Memo1.Lines.Add('------------------------------------------------------');
Memo1.Lines.Add('DADOS DO DESTINATÁRIO');
Memo1.Lines.Add('------------------------------------------------------');
Memo1.Lines.Add('CNPJ: '+dest.ChildNodes['CNPJ'].Text);
Memo1.Lines.Add('Nome: '+dest.ChildNodes['xNome'].Text);
Memo1.Lines.Add('EI: '+dest.ChildNodes['IE'].Text);
Memo1.Lines.Add('E-Mail: '+dest.ChildNodes['email'].Text);
// endereço do destinatário
enderDest := dest.ChildNodes.FindNode('enderDest');
Memo1.Lines.Add('Logradouro: '+enderDest.ChildNodes['xLgr'].Text);
Memo1.Lines.Add('Número: '+enderDest.ChildNodes['nro'].Text);
Memo1.Lines.Add('Caixa Postal: '+enderDest.ChildNodes['xCp'].Text);
Memo1.Lines.Add('Bairro: '+enderDest.ChildNodes['xBairro'].Text);
Memo1.Lines.Add('Código do Município: '+enderDest.ChildNodes['cMun'].Text);
Memo1.Lines.Add('Município: '+enderDest.ChildNodes['xMun'].Text);
Memo1.Lines.Add('UF: '+enderDest.ChildNodes['UF'].Text);
Memo1.Lines.Add('CEP: '+enderDest.ChildNodes['CEP'].Text);
Memo1.Lines.Add('Código do País: '+enderDest.ChildNodes['cPais'].Text);
Memo1.Lines.Add('País: '+enderDest.ChildNodes['xPais'].Text);
Memo1.Lines.Add('Telefone: '+enderDest.ChildNodes['fone'].Text);
Memo1.Lines.Add('------------------------------------------------------');

// dados dos produtos
Memo1.Lines.Add('------------------------------------------------------');
Memo1.Lines.Add('DADOS DO PRODUTO');
Memo1.Lines.Add('------------------------------------------------------');

w_cont := 0;
while (w_cont <infNFe> 0 then
begin
det := infNFe.ChildNodes[w_cont].ChildNodes.FindNode('det');

if det <> nil then
ShowMessage('Achei')
else
ShowMessage('Não achei');
end;
w_cont := w_cont+1;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Out 02, 2019 3:48 pm    Assunto: Responder com Citação

Boa tarde,

Acho que o código que você postou ficou distorcido no fórum.
Experimente editar o código do primeiro post ou poste novamente mas antes de enviar selecione o CheckBox "Desativar HTML nesta mensagem" que fica acima do botão "Enviar".
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
mauricio.77
Novato
Novato


Registrado: Sexta-Feira, 5 de Janeiro de 2018
Mensagens: 4

MensagemEnviada: Qua Abr 15, 2020 1:49 pm    Assunto: Responder com Citação

importa pelo acbrNfe que traz todo os dados voce vai criar um dataset pode ser virtual com os mesmo campos ai manioula do jeito que voce quer
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> NFe Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB