Ir para conteúdo
  • Cadastre-se

[Dúvida]Lendo Xml Da Nfe Pelo Componente Acbrnfe


Ver Solução Respondido por Régys Silveira,
  • Este tópico foi criado há 4690 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom meu sistema tem que importar a NFe para o banco de dados,estou usando o TACBrNFe para carregar um XML,porém na hora da compilação recebo isso:

Build
  [Warning] UDBUpdater.pas(31): Method 'Destroy' hides virtual method of base type 'TThread'
  [Error] UDBUpdater.pas(61): Undeclared identifier: 'cUF'
  [Error] UDBUpdater.pas(62): Undeclared identifier: 'cNF'
  [Error] UDBUpdater.pas(63): Undeclared identifier: 'natOp'
  [Error] UDBUpdater.pas(64): Undeclared identifier: 'indpag'
  [Error] UDBUpdater.pas(65): Undeclared identifier: 'cMod'
  [Error] UDBUpdater.pas(66): Undeclared identifier: 'serie'
  [Error] UDBUpdater.pas(67): Undeclared identifier: 'cEmi'
  [Error] UDBUpdater.pas(67): Undeclared identifier: 'cEmi'
  [Error] UDBUpdater.pas(68): Undeclared identifier: 'cSaiEnt'
  [Error] UDBUpdater.pas(68): Undeclared identifier: 'cSaiEnt'
  [Error] UDBUpdater.pas(69): Undeclared identifier: 'tpNf'
  [Error] UDBUpdater.pas(69): Undeclared identifier: 'tpNf'
  [Error] UDBUpdater.pas(70): Undeclared identifier: 'cMunfg'
  [Error] UDBUpdater.pas(71): Undeclared identifier: 'tpImp'
  [Error] UDBUpdater.pas(72): Undeclared identifier: 'tpEmis'
  [Error] UDBUpdater.pas(73): Undeclared identifier: 'cDV'
  [Error] UDBUpdater.pas(74): Undeclared identifier: 'tpAmb'
  [Error] UDBUpdater.pas(75): Undeclared identifier: 'finNFe'
  [Error] UDBUpdater.pas(76): Undeclared identifier: 'procEmi'
  [Error] UDBUpdater.pas(77): Undeclared identifier: 'verProc'
  [Error] UDBUpdater.pas(79): Undeclared identifier: 'CNPJ'
  [Error] UDBUpdater.pas(84): Undeclared identifier: 'CNPJ'
  [Error] UDBUpdater.pas(86): Undeclared identifier: 'xFant'
  [Error] UDBUpdater.pas(87): Undeclared identifier: 'dest_ie'
  [Fatal Error] UFrmMain.pas(7): Could not compile used unit 'UDBUpdater.pas'

E aqui está a função

procedure TDBUpdater.AtualizaXML(Arquivo : string);
var
  nfe : TAcBrNFE;
  i : integer;
  nfeid,emit_cnpj,emit_nome,emit_fantasia,emit_ie,dest_cnpj,dest_nome,dest_fantasia,dest_mail,cUF,cNF,natOp,indPag,cMod,serie,nNf,cMunfg,tpImp,tpEmis,cDv,tPamb,finNfe,procEmi,verProc : string;
  prod_nome,prod_ean : string;
begin
  nfe := TAcBrNFE.Create(nil);
  nfe.NotasFiscais.LoadFromFile(arquivo);
  //DADOS DO CABEÇALHO
  //-- infNFe
  nfeid := ExtractFileName(arquivo);
  cUF := nfe.NotasFiscais.Items[0].NFe.infNFe.cUF;
  cNF := nfe.NotasFiscais.Items[0].NFe.infNFe.cNF;
  natOp := nfe.NotasFiscais.Items[0].NFe.infNFe.natOp;
  indpag := nfe.NotasFiscais.Items[0].NFe.infNFe.indpag;
  cMod := nfe.NotasFiscais.Items[0].NFe.infNFe.cMod;
  serie := nfe.NotasFiscais.Items[0].NFe.infNFe.serie;
  cEmi := nfe.NotasFiscais.Items[0].NFe.infNFe.cEmi;
  cSaiEnt := nfe.NotasFiscais.Items[0].NFe.infNFe.cSaiEnt;
  tpNf := nfe.NotasFiscais.Items[0].NFe.infNFe.tpNf;
  cMunfg := nfe.NotasFiscais.Items[0].NFe.infNFe.cMunfg;
  tpImp := nfe.NotasFiscais.Items[0].NFe.infNFe.tpImp;
  tpEmis := nfe.NotasFiscais.Items[0].NFe.infNFe.tpEmis;
  cDV := nfe.NotasFiscais.Items[0].NFe.infNFe.cDV;
  tpAmb := nfe.NotasFiscais.Items[0].NFe.infNFe.tpAmb;
  finNFe := nfe.NotasFiscais.Items[0].NFe.infNFe.finNFe;
  procEmi := nfe.NotasFiscais.Items[0].NFe.infNFe.procEmi;
  verProc := nfe.NotasFiscais.Items[0].NFe.infNFe.verProc;
  //-- Emit
  emit_cnpj := nfe.NotasFiscais.Items[0].NFe.Emit.CNPJ;
  emit_nome := nfe.NotasFiscais.Items[0].NFe.Emit.xNome;
  emit_fantasia := nfe.NotasFiscais.Items[0].NFe.Emit.xFant;
  emit_ie := nfe.NotasFiscais.Items[0].NFe.Emit.IE;
  //-- Dest
  dest_cnpj := nfe.NotasFiscais.Items[0].NFe.Dest.CNPJ;
  dest_nome := nfe.NotasFiscais.Items[0].NFe.Dest.xNome;
  dest_fantasia := nfe.NotasFiscais.Items[0].NFe.Dest.xFant;
  dest_ie := nfe.NotasFiscais.Items[0].NFe.Dest.IE;

E também tenho outra dúvida que é em relação a leitura dos impostos nos itens,visto que existem vária tags para o icms como <ICMS00> <ICMS20>,como eu faço a leitura dessa tag?

 

Obrigado.

  • Consultores
Postado

Boa noite

no caso a unit UDBUpdater.pas não faz parte do projeto acbr no entanto vi que no código abaixo

onde você pega informações do componente TACBrNFe está assim

cUF := nfe.NotasFiscais.Items[0].NFe.infNFe.cUF;

o que seria o cUF que recebe a atribuição? é uma variável interna de sua unit ou até mesmo uma propriedade?

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado

TDBUpdater é a minha classe que faz atualização do banco de dados.

Como da para perceber no inicio da função cUF é uma variavel local do tipo string,o que faz parte do AcBR é o TAcBrNFe,o qual eu pretendo usar para ler XML e importar a nfe no ERP que sou desenvolvedor.

E sobre a minha outra dúvida que postei aqui mesmo sobre a leitura das tags de ICMS (ICMS00,ICMS20,etc)?

O Componente unifica isso ou teria que ser verificado a existencia de cada tag.

Agradeço pela atenção.

Postado (editado)

Obrigado clever-x pela ajuda,mas ainda falta o outro erro.

procedure TDBUpdater.AtualizaXML(Arquivo : string);
var
  nfe : TAcBrNFE;
  i : integer;
  _nfeid,_emit_cnpj,_emit_nome,_emit_fantasia,_emit_ie,_dest_cnpj,_dest_nome,_dest_fantasia,_dest_mail,_cUF,_cNF,_natOp,_indPag,_cMod,_serie,_nNf,_cMunfg,_tpImp,_tpEmis,_cDv,_tPamb,_finNfe,_procEmi,_verProc : string;
  prod_nome,prod_ean : string;
begin
  nfe := TAcBrNFE.Create(nil);
  nfe.NotasFiscais.LoadFromFile(arquivo);
  //DADOS DO CABEÇALHO
  //-- infNFe
  _nfeid := ExtractFileName(arquivo);
  _cUF := nfe.NotasFiscais.Items[0].NFe.infNFe.cUF;
  _cNF := nfe.NotasFiscais.Items[0].NFe.infNFe.cNF;
  _natOp := nfe.NotasFiscais.Items[0].NFe.infNFe.natOp;
  _indpag := nfe.NotasFiscais.Items[0].NFe.infNFe.indpag;
  _cMod := nfe.NotasFiscais.Items[0].NFe.infNFe.cMod;
  _serie := nfe.NotasFiscais.Items[0].NFe.infNFe.serie;
  _cEmi := nfe.NotasFiscais.Items[0].NFe.infNFe.cEmi;
  _cSaiEnt := nfe.NotasFiscais.Items[0].NFe.infNFe.cSaiEnt;
  _tpNf := nfe.NotasFiscais.Items[0].NFe.infNFe.tpNf;
  _cMunfg := nfe.NotasFiscais.Items[0].NFe.infNFe.cMunfg;
  _tpImp := nfe.NotasFiscais.Items[0].NFe.infNFe.tpImp;
  _tpEmis := nfe.NotasFiscais.Items[0].NFe.infNFe.tpEmis;
  _cDV := nfe.NotasFiscais.Items[0].NFe.infNFe.cDV;
  _tpAmb := nfe.NotasFiscais.Items[0].NFe.infNFe.tpAmb;
  _finNFe := nfe.NotasFiscais.Items[0].NFe.infNFe.finNFe;
  _procEmi := nfe.NotasFiscais.Items[0].NFe.infNFe.procEmi;
  _verProc := nfe.NotasFiscais.Items[0].NFe.infNFe.verProc;
  //-- Emit
  _emit_cnpj := nfe.NotasFiscais.Items[0].NFe.Emit.CNPJ;
  _emit_nome := nfe.NotasFiscais.Items[0].NFe.Emit.xNome;
  _emit_fantasia := nfe.NotasFiscais.Items[0].NFe.Emit.xFant;
  _emit_ie := nfe.NotasFiscais.Items[0].NFe.Emit.IE;
  //-- Dest
  _dest_cnpj := nfe.NotasFiscais.Items[0].NFe.Dest.CNPJ;
  _dest_nome := nfe.NotasFiscais.Items[0].NFe.Dest.xNome;
  _dest_fantasia := nfe.NotasFiscais.Items[0].NFe.Dest.xFant;
  _dest_ie := nfe.NotasFiscais.Items[0].NFe.Dest.IE;

Build Messages

[Error] UDBUpdater.pas(61): Undeclared identifier: 'cUF'
[Error] UDBUpdater.pas(62): Undeclared identifier: 'cNF'
[Error] UDBUpdater.pas(63): Undeclared identifier: 'natOp'
[Error] UDBUpdater.pas(64): Undeclared identifier: 'indpag'
[Error] UDBUpdater.pas(65): Undeclared identifier: 'cMod'
[Error] UDBUpdater.pas(66): Undeclared identifier: 'serie'
[Error] UDBUpdater.pas(67): Undeclared identifier: '_cEmi'
[Error] UDBUpdater.pas(67): Undeclared identifier: 'cEmi'
[Error] UDBUpdater.pas(68): Undeclared identifier: '_cSaiEnt'
[Error] UDBUpdater.pas(68): Undeclared identifier: 'cSaiEnt'
[Error] UDBUpdater.pas(69): Undeclared identifier: '_tpNf'
[Error] UDBUpdater.pas(69): Undeclared identifier: 'tpNf'
[Error] UDBUpdater.pas(70): Undeclared identifier: 'cMunfg'
[Error] UDBUpdater.pas(71): Undeclared identifier: 'tpImp'
[Error] UDBUpdater.pas(72): Undeclared identifier: 'tpEmis'
[Error] UDBUpdater.pas(73): Undeclared identifier: 'cDV'
[Error] UDBUpdater.pas(74): Undeclared identifier: 'tpAmb'
[Error] UDBUpdater.pas(75): Undeclared identifier: 'finNFe'
[Error] UDBUpdater.pas(76): Undeclared identifier: 'procEmi'
[Error] UDBUpdater.pas(77): Undeclared identifier: 'verProc'
[Error] UDBUpdater.pas(79): Undeclared identifier: 'CNPJ'
[Error] UDBUpdater.pas(84): Undeclared identifier: 'CNPJ'
[Error] UDBUpdater.pas(86): Undeclared identifier: 'xFant'
[Error] UDBUpdater.pas(87): Undeclared identifier: '_dest_ie'
[Fatal Error] UFrmMain.pas(7): Could not compile used unit 'UDBUpdater.pas'
 

Sei que deu uns erros porque eu renomeei as variáveis mas é pra deixar claro que o erro não está dando por causa das minhas variáveis declaradas.

E pelo que eu percebi tem moderador que lê o tópico(porque deu warn) e não responde,não sei se é propositalmente ou falta de conhecimento sobre o componente.

Agradeço a todos que LEEM o tópico e RESPONDEM tentando ajudar.

Editado por rdxdt
  • Moderadores
Postado

Sei que deu uns erros porque eu renomeei as variáveis mas é pra deixar claro que o erro não está dando por causa das minhas variáveis declaradas.

E pelo que eu percebi tem moderador que lê o tópico(porque deu warn) e não responde,não sei se é propositalmente ou falta de conhecimento sobre o componente.

Agradeço a todos que LEEM o tópico e RESPONDEM tentando ajudar.

Moderador existe para deixar o fórum em ordem e não pra responder gente FOLGADA.
  • Curtir 1
djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefip.com.br | www.xpos.com.br
  • Moderadores
  • Solution
Postado

Primeiro vamos deixar claro o papel do moderador de um fórum, o trabalho dele é ler os tópicos avaliando posts que estão indo contra as regras do fórum, flooding é contra as regras e o Juliomar lhe alertou sobre isso, não necessariamente ele é obrigado a responder, até porque pode não entender do assunto, mas a obrigação dele como moderador e ler cada post, cada tópico, cada fórum, procurando coisas que vão contras as regras, isso é feito para manter um mínimo de organização no fórum facilitando a vida de todo mundo. Não entenda mal, mas você fez flooding e ele lhe alertou, somente isso.

 

 

O seu problema está bem claro e o compilador já deu a dica, os identificadores não estão declarados isso porque essas propriedades não existem no componente ou você está chamando de forma incorreta, por você está chamando as propriedade sempre a partir do caminho: nfe.NotasFiscais.Items[0].NFe.infNFe.XXXX, essas propriedades não existem ai neste caminho, infNFe não tem essas propriedades.

 

Veja no demo do ACBrNFe como chamar corretamente as propriedades que necessita, basicamente a forma como está usando o componente está errada, simples assim.

  • Curtir 1

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Postado (editado)

Primeiro vamos deixar claro o papel do moderador de um fórum, o trabalho dele é ler os tópicos avaliando posts que estão indo contra as regras do fórum, flooding é contra as regras e o Juliomar lhe alertou sobre isso, não necessariamente ele é obrigado a responder, até porque pode não entender do assunto, mas a obrigação dele como moderador e ler cada post, cada tópico, cada fórum, procurando coisas que vão contras as regras, isso é feito para manter um mínimo de organização no fórum facilitando a vida de todo mundo. Não entenda mal, mas você fez flooding e ele lhe alertou, somente isso.

 

 

O seu problema está bem claro e o compilador já deu a dica, os identificadores não estão declarados isso porque essas propriedades não existem no componente ou você está chamando de forma incorreta, por você está chamando as propriedade sempre a partir do caminho: nfe.NotasFiscais.Items[0].NFe.infNFe.XXXX, essas propriedades não existem ai neste caminho, infNFe não tem essas propriedades.

 

Veja no demo do ACBrNFe como chamar corretamente as propriedades que necessita, basicamente a forma como está usando o componente está errada, simples assim.

Agradeço pela resposta válida e haveria alguma documentação da estrutura do componente? 

Algum manual ou algo do tipo?

 

 

E sobre moderação, bom em todos os fóruns em que fui moderador,e inclusive o que eu administro ,os moderadores tem embasamento sobre o conteúdo,e respondem independentemente da pessoa ser folgada ou não,agora eu cheguei a suspeitar de que quem tem conhecimento deixa esperando afim de forçar as pessoas a pagarem.

Além do mais eu nunca chamaria um "cliente" em potencial de folgado.

E Flooding é quando se posta de maneira repetida num curto espaço de tempo,no caso eu esperei o tópico cair (e foi uns 2 dias se não me engano para mandar um up),ou eu deveria abrir um novo tópico para o mesmo ficar em cima,porque eu dúvido que alguém vai ir até a 5ª página para ler.

 

Mas agradeço mesmo ao Régis Silveira por responder ,e também ao colega clever-x que me informou sobre o ICMS.

Editado por rdxdt
  • Moderadores
Postado

Colega, não vou iniciar uma discussão contigo a respeito de como se comportar ou não em um fórum, veja, você fez algo contra as regras do deste fórum, lhe alertaram, somente isso, te passei educadamente a explicação sobre isso e você preferiu agir com sarcasmo.

 

Quanto a forçar o pagamento, somos pouco mais de 10 usuários para responder a mais de 7.000, desculpe se eu ou qualquer outro que passa o dia neste fórum respondendo as várias perguntas postadas não conseguimos responder a sua pergunta dentro tantas em tempo considerado hábil para você, ninguém aqui força pagamento, trabalhamos todos de graça, doando conhecimento e tentando ajudar quem precisa. o ACBrSAC é somente uma forma de pagar as despesas do projeto, fórum e tudo o mais, não vou entrar em discussão quanto a isso.

 

Voltando a sua dúvida, lhe respondi educadamente e com tudo que é necessário para você fazer o que você quer, infelizmente tenho que concordar com o André já que uma simples visualizada no Demo do ACBrNFe e lendo a resposta que lhe passei seria suficiente para sanar o problema, mas mais uma vez você preferiu agir com sarcasmo esperando uma resposta pronta, agora sim é que dificilmente alguém vai lhe ajudar, visto a forma que está tratando quem tenta lhe ajudar.

  • Curtir 1

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
  • Este tópico foi criado há 4690 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...