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 

capturar os dados do xml

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


Registrado: Terça-Feira, 8 de Dezembro de 2009
Mensagens: 7

MensagemEnviada: Sex Set 06, 2013 11:34 am    Assunto: capturar os dados do xml Responder com Citação

ola, alguem tem um uma rotima ou funcao pra capturar os dados para importar essa nota no meu banco???

tipo dados cliente
dados de produtos
totais

desde ja agradeço

- <nfeProc>
- <NFe>
- <infNFe>
- <ide>
<cUF>35</cUF>
<cNF>00046047</cNF>
<natOp>VENDAS MERCADORIAS SUBST.TRIBUT.CONSUMIDOR FINAL</natOp>
<indPag>1</indPag>
<mod>55</mod>
<serie>1</serie>
<nNF>46047</nNF>
<dEmi>2013-08-26</dEmi>
<dSaiEnt>2013-08-26</dSaiEnt>
<hSaiEnt>09:36:53</hSaiEnt>
<tpNF>1</tpNF>
<cMunFG>3550308</cMunFG>
<tpImp>1</tpImp>
<tpEmis>1</tpEmis>
<cDV>9</cDV>
<tpAmb>1</tpAmb>
<finNFe>1</finNFe>
<procEmi>0</procEmi>
<verProc>000</verProc>
</ide>
- <emit>
<CNPJ>10690274000103</CNPJ>
<xNome>ACWARE COMERC DE EQUIP P/ AUTOMACAO COMERCIAL LTDA</xNome>
<xFant>AC WARE</xFant>
- <enderEmit>
<xLgr>RUA ARUJA</xLgr>
<nro>085</nro>
<xBairro>PARAISO</xBairro>
<cMun>3550308</cMun>
<xMun>SAO PAULO</xMun>
<UF>SP</UF>
<CEP>04104040</CEP>
<cPais>1058</cPais>
<xPais>BRASIL</xPais>
<fone>1130181990</fone>
</enderEmit>
<IE>148526740118</IE>
<CRT>3</CRT>
</emit>
- <dest>
<CNPJ>12459601000146</CNPJ>
<xNome>WELLINGTON APDO MOREIRA DOS SANTOS INFORM - ME</xNome>
- <enderDest>
<xLgr>RUA CASSIO DE ALMEIDA, 338</xLgr>
<nro>CASA 4</nro>
<xBairro>CARANDIRU</xBairro>
<cMun>3550308</cMun>
<xMun>SAO PAULO</xMun>
<UF>SP</UF>
<CEP>02067060</CEP>
<cPais>1058</cPais>
<xPais>BRASIL</xPais>
<fone>1122180017</fone>
</enderDest>
<IE>147490255119</IE>
<email>wamsantos@gmail.com</email>
</dest>
- <det>
- <prod>
<cProd>00500</cProd>
<cEAN>
<xProd>IMP TERMICA DE ETIQUETAS ARGOX OS214TT (PLUS)</xProd>
<NCM>84433299</NCM>
<CFOP>5405</CFOP>
<uCom>UN</uCom>
<qCom>2.0000</qCom>
<vUnCom>784.0000000000</vUnCom>
<vProd>1568.00</vProd>
<cEANTrib>
<uTrib>UN</uTrib>
<qTrib>2.0000</qTrib>
<vUnTrib>784.0000000000</vUnTrib>
<indTot>1</indTot>
<xPed>60112608</xPed>
<nItemPed>000001</nItemPed>
</prod>
- <imposto>
- <ICMS>
- <ICMS40>
<orig>0</orig>
<CST>41</CST>
</ICMS40>
</ICMS>
- <PIS>
- <PISAliq>
<CST>01</CST>
<vBC>1568.00</vBC>
<pPIS>1.65</pPIS>
<vPIS>25.87</vPIS>
</PISAliq>
</PIS>
- <COFINS>
- <COFINSAliq>
<CST>01</CST>
<vBC>1568.00</vBC>
<pCOFINS>7.60</pCOFINS>
<vCOFINS>119.17</vCOFINS>
</COFINSAliq>
</COFINS>
</imposto>
<infAdProd>30657993 30657992</infAdProd>
</det>
- <total>
- <ICMSTot>
<vBC>0.00</vBC>
<vICMS>0.00</vICMS>
<vBCST>0.00</vBCST>
<vST>0.00</vST>
<vProd>1568.00</vProd>
<vFrete>0.00</vFrete>
<vSeg>0.00</vSeg>
<vDesc>0.00</vDesc>
<vII>0.00</vII>
<vIPI>0.00</vIPI>
<vPIS>25.87</vPIS>
<vCOFINS>119.17</vCOFINS>
<vOutro>0.00</vOutro>
<vNF>1568.00</vNF>
</ICMSTot>
</total>
- <transp>
<modFrete>0</modFrete>
- <transporta>
<CNPJ>10690274000103</CNPJ>
<xNome>TRANSPORTE PROPRIO</xNome>
<IE>148526740118</IE>
<xEnder>RUA ARUJA 85</xEnder>
<xMun>SAO PAULO</xMun>
<UF>SP</UF>
</transporta>
- <vol>
<qVol>1</qVol>
<esp>VOLUMES</esp>
<pesoL>6.600</pesoL>
<pesoB>6.600</pesoB>
</vol>
</transp>
- <cobr>
- <dup>
<dVenc>2013-09-05</dVenc>
<vDup>392.00</vDup>
</dup>
- <dup>
<dVenc>2013-09-25</dVenc>
<vDup>392.00</vDup>
</dup>
- <dup>
<dVenc>2013-10-25</dVenc>
<vDup>392.00</vDup>
</dup>
- <dup>
<dVenc>2013-11-22</dVenc>
<vDup>392.00</vDup>
</dup>
</cobr>
- <infAdic>
<infCpl>VENDAS DE MERCADORIAS ADQUIRIDAS OU RECEBIDAS DE TERCEIROS EM OPERACOES SUJEITAS AO REGIME DE SUBSTITUICAO TRIBUTARIA QUANDO DESTINADAS A CONSUMI- DOR OU USUARIO FINAL Nosso Pedido: 071902</infCpl>
</infAdic>
</infNFe>
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
jwalamino69
Aprendiz
Aprendiz


Registrado: Terça-Feira, 16 de Julho de 2013
Mensagens: 185
Localização: São Paulo

MensagemEnviada: Sex Set 06, 2013 12:35 pm    Assunto: Responder com Citação

Boa tarde.

Use Xml Mapper ou:

http://www.caiooliveira.com.br/?tag=xml

http://simasware.wordpress.com/2010/06/26/lendo-xml-com-o-delphi/

http://www.devmedia.com.br/importando-xml-com-o-xmldocument-delphi/24288
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
Ice
Novato
Novato


Registrado: Terça-Feira, 8 de Dezembro de 2009
Mensagens: 7

MensagemEnviada: Sex Set 06, 2013 3:04 pm    Assunto: Responder com Citação

da erro , acess 0000 ... alguem sabe o q ?

var
vXMLDoc: TXMLDocument;
NodePai,NodeSec,NodeTmp: IXMLNode;
nome, codigo: WideString;
begin
// Cria a variável baseada no TXMLDocument
vXMLDoc := TXMLDocument.Create(self);
OpenDialog.Execute;
// Le conteúdo do arquivo XML informado
vXMLDoc.LoadFromFile(OpenDialog.FileName);
// Poderia ser uma URL como abaixo:
//vXMLDoc.FileName := 'http://www.caiooliveira.com.br/?feed=rss2';
//vXMLDoc.Active := True;

// Vou colocar os dados no memo apenas como exemplo

// Aqui eu peço para encontrar a primeira ocorrencia da Tag <det>>
NodePai := vXMLDoc.DocumentElement.childNodes.First.ChildNodes.FindNode('det');
// Esse nó vai ser usado no LOOP
NodeSec := NodePai;
// Posiciona o primeiro elemento encontrado
NodeSec.ChildNodes.First;
repeat
// referencia a tag <prod> dentro de <det>
NodeTmp := NodeSec.ChildNodes['prod'];
// da pra ver que é um XML resumido da NFe (so temos uma tag <prod> para cada <det> então não precisaria da linha abaixo
// agora se tivéssemos mais de uma seria o caso de posicionar também na primeira ocorrencia.
NodeTmp.ChildNodes.First;
repeat
// pega os dados que vc quiser dentro da tag <prod>
nome := NodeTmp.ChildNodes['cProd'].text; // posso ler assim
codigo := NodeTmp.ChildValues['cEan']; // ou assim

// vamos inserir no Memo os dados
Memo2.Lines.Add('-----------------------------------------------');
Memo2.Lines.Add( nome+' ---- '+codigo );

// vai para a proxima ocorrência </prod><prod> (se houvesse)
NodeTmp := NodeTmp.NextSibling;
until NodeTmp = nil;
// vai para a proxima ocorrência <det>
NodeSec := NodeSec.NextSibling;
until NodeSec = nil;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Ghost_Rider
Colaborador
Colaborador


Registrado: Segunda-Feira, 6 de Outubro de 2003
Mensagens: 4437

MensagemEnviada: Sex Set 06, 2013 3:20 pm    Assunto: Responder com Citação

O acbr tem isso...e sem erros...tudo simples...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Ice
Novato
Novato


Registrado: Terça-Feira, 8 de Dezembro de 2009
Mensagens: 7

MensagemEnviada: Sex Set 06, 2013 3:31 pm    Assunto: Responder com Citação

eu uso acbr... nao achei material pra fazer isso. vc tem algum link pra ajudar?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Ice
Novato
Novato


Registrado: Terça-Feira, 8 de Dezembro de 2009
Mensagens: 7

MensagemEnviada: Sex Set 06, 2013 3:33 pm    Assunto: Responder com Citação

a minha dificuldade e com a parte de produtos , a parte fixa de cabeçalho , emitente, destinatario, transportadora eu fiz com acbr .
agora produtos nao to conseguindo fazer.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Ghost_Rider
Colaborador
Colaborador


Registrado: Segunda-Feira, 6 de Outubro de 2003
Mensagens: 4437

MensagemEnviada: Sex Set 06, 2013 11:40 pm    Assunto: Responder com Citação

Com os produtos é igual, mas tem que respeitar a cadeia de nodes no xmls....no exemplo que vem com o acbr tem a parte que vc importa o XML e transforma ele em texto, tá tudo lá amigo...ou melhor ainda, abre os fontes e estuda direto nos fontes....

De qualquer modo, mastigadinho não tá...abraço...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9098
Localização: Sinop-MT

MensagemEnviada: Ter Set 10, 2013 11:04 am    Assunto: Responder com Citação

abra o xml no acbr, e faca o seguinte:

Código:
         for n := 0 to NotasFiscais.Count - 1 do
         begin
            with NotasFiscais.Items[n].NFe do
            begin
               edChave.Text := procNFe.chNFe;
               edNumero.Text := IntToStr(Ide.cNF);
               edSerie.Text := IntToStr(Ide.serie); // IntToStr(Ide.nNF)
               edForn.Text := Format('%s ($s)', [Emit.xNome, Emit.xFant]);
               for I := 0 to Det.Count - 1 do
               begin
                  with Det.Items[I] do
                  begin
                     { aqui vc pega os dados dos produtos
                     memXMLItem.Value := Prod.nItem;
                     memXMLCodigo.Value := Prod.cProd;
                     memXMLCod_Barras.Value := RightStr(Prod.cEAN, 13);
                     memXMLDescricao.AsString := Prod.xProd;
                  end;
               end;
            end;
         end;

_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
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