| 
			
				|  | ActiveDelphi .: O site do programador Delphi! :.
 
 |  
 
	
		| Exibir mensagem anterior :: Exibir próxima mensagem |  
		| Autor | Mensagem |  
		| jrinfsilva Novato
 
  
 
 Registrado: Terça-Feira, 1 de Outubro de 2019
 Mensagens: 1
 
 
 | 
			
				|  Enviada: Ter Out 01, 2019 6:16 pm    Assunto: Importar XML de NFe |   |  
				| 
 |  
				| 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 |  |  
		|  |  
		| imex Moderador
 
  
 
 Registrado: Sexta-Feira, 7 de Janeiro de 2011
 Mensagens: 11666
 
 
 | 
			
				|  Enviada: Qua Out 02, 2019 3:48 pm    Assunto: |   |  
				| 
 |  
				| 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 |  |  
		|  |  
		| mauricio.77 Novato
 
  
 
 Registrado: Sexta-Feira, 5 de Janeiro de 2018
 Mensagens: 4
 
 
 | 
			
				|  Enviada: Qua Abr 15, 2020 1:49 pm    Assunto: |   |  
				| 
 |  
				| 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 |  |  
		|  |  
		|  |  
  
	| 
 
 | Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido
 Editar Mensagens: Proibido.
 Excluir Mensagens: Proibido.
 Votar em Enquetes: Proibido.
 
 |  |