Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 1960 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa noite, prezados

 

           Sou novo na área de programação, e aqui também, prazer a todos meu nome é Cleidiane estou criando um Sistema de importação de XML, porém não estou conseguindo salvar o evento da nota no banco de Dados. Está apresentando erros na Index. Segue trecho para melhor compreensão.

 

    Query_cabecalho.SQL.Clear;
    Query_cabecalho.SQL.Add('INSERT INTO CABECALHO');
    Query_cabecalho.SQL.Add('(NRONFE,CHAVE_ACESSO, NATOPERACAO, EMISSAO, STATUS, EMI_NOME,');
    Query_cabecalho.SQL.Add('EMI_CNPJ, EMI_END, EMI_BAI, EMI_CID, DES_NOME,');
    Query_cabecalho.SQL.Add('DES_CNPJ,DES_END, DES_BAI, DES_CID, EVENTO)');
    Query_cabecalho.SQL.Add('VALUES (:pEVENTO, :pNRONFE, :pCHAVE_ACESSO, :pNATOPERACAO, :pEMISSAO, :pSTATUS, :pEMI_NOME,');
    Query_cabecalho.SQL.Add(':pEMI_CNPJ, :pEMI_END, :pEMI_BAI, :pEMI_CID, :pDES_NOME,');
    Query_cabecalho.SQL.Add(':pDES_CNPJ,:pDES_END, :pDES_BAI, :pDES_CID, :pEVENTO)');

     // REPASSANDO OS VALORES PARA OS PARÂMETROS.

     Query_cabecalho.ParamByName('pNRONFE').AsInteger       := nf.NotasFiscais.Items [0].NFe.Ide.nNF;
     Query_Cabecalho.ParamByName('pCHAVE_ACESSO').AsString := NF.NotasFiscais.Items [0].NFe.procNFe.chNFe;
     Query_cabecalho.ParamByName('pNATOPERACAO').AsString   := nf.NotasFiscais.Items [0].NFe.Ide.natOP;
     Query_cabecalho.ParamByName('pEMISSAO').AsDate         := nf.NotasFiscais.Items [0].NFe.Ide.dEmi;
     Query_cabecalho.ParamByName('pSTATUS').AsString        := nf.NotasFiscais.Items [0].NFe.procNFe.xMotivo;
     Query_cabecalho.ParamByName('pEMI_NOME').AsString      := nf.NotasFiscais.Items [0].NFe.Emit.xNome;
     Query_cabecalho.ParamByName('pEMI_CNPJ').AsString      := nf.NotasFiscais.Items [0].NFe.Emit.CNPJCPF;
     Query_cabecalho.ParamByName('pEMI_END').AsString       := nf.NotasFiscais.Items [0].NFe.Emit.EnderEmit.xLgr;
     Query_cabecalho.ParamByName('pEMI_BAI').AsString       := nf.NotasFiscais.Items [0].NFe.Emit.EnderEmit.xBairro;
     Query_cabecalho.ParamByName('pEMI_CID').AsString       := nf.NotasFiscais.Items [0].NFe.Emit.EnderEmit.xMun;
     Query_cabecalho.ParamByName('pDES_NOME').AsString      := nf.NotasFiscais.Items [0].NFe.Dest.xNome;
     Query_cabecalho.ParamByName('pDES_CNPJ').AsString      := nf.NotasFiscais.Items [0].NFe.Dest.CNPJCPF;
     Query_cabecalho.ParamByName('pDES_END').AsString       := nf.NotasFiscais.Items [0].NFe.Dest.EnderDest.xLgr;
     Query_cabecalho.ParamByName('pDES_BAI').AsString       := nf.NotasFiscais.Items [0].NFe.Dest.EnderDest.xBairro;
     Query_cabecalho.ParamByName('pDES_CID').AsString       := nf.NotasFiscais.Items [0].NFe.Dest.EnderDest.xMun;
     Query_Cabecalho.ParamByName('pEVENTO').Value           := nf.EventoNFe.Evento.Items[0].InfEvento.cOrgao;         ------ Somente está que apreenta erros quando executado o software, no IDE não apresenta nenhum erro de Sintaxe.
     Query_Cabecalho.ExecSQL;


Como podem ver estou inserindo no banco por parâmetro porém somente o Evento não estou conseguindo, apresenta o seguinte erro : "List Index out of Bounds" 

Se eu remover ele e as referencias dele no código , tudo funciona perfeitamente, estou usando a propriedade errada do componente ou algo do tipo, pois preciso registrar o Evento para discernir se a nota está ou não cancelada.

Desde já agradeço a todos por tudo.

 

 

  • Moderadores
Postado
18 horas atrás, Cleidiane Cardoso disse:

     Query_Cabecalho.ParamByName('pEVENTO').Value           := nf.EventoNFe.Evento.Items[0].InfEvento.cOrgao;         ------ Somente está que apreenta erros quando executado o software, no IDE não apresenta nenhum erro de Sintaxe.

Significa que o índice 0 que você está tentando acessar em nf.EventoNFe.Evento.Items[0] não existe.

O que significa que não existe XML de evento carregado no componente.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado
8 horas atrás, BigWings disse:

Significa que o índice 0 que você está tentando acessar em nf.EventoNFe.Evento.Items[0] não existe.

O que significa que não existe XML de evento carregado no componente.

Boa Noite,  Desde já Obrigado pela presteza

                         Abaixo segue uma parte do XML da nota, verificará que existe um evento vinculado a mesma, primeiro ela está autorizada, após isso teve um evento de cancelamento, a importação de todos os campos está correta, porém não consigo capturar somente o Evento "<xEvento>CANCELAMENTO</xEvento>" pois se importar sem ele ela constará como Autorizada e não Cancelada, pode descrever como seria a Sintaxe, pois discorrendo nas propriedades não acho qual captura este campo,  resta somente este quesito para que eu tenha êxito no total.


<protNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00"> 
<infProt Id="ID131190008655461">
<tpAmb>1</tpAmb>
<verAplic>W-1.1.29</verAplic>
<chNFe>31190422365258000205650010000013861691406840</chNFe>
<dhRecbto>2019-04-02T07:34:21-03:00</dhRecbto>
<nProt>131190008655461</nProt>
<digVal>ippxvo020NN9LT0kuchQjmSd5qE=</digVal>
<cStat>100</cStat>
<xMotivo>Autorizado o uso da NF-e</xMotivo>
</infProt>
</protNFe>
-<retEvento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
-<infEvento Id="ID131190008807784">
<tpAmb>1</tpAmb>
<verAplic>W-1.1.29</verAplic>
<cOrgao>31</cOrgao>
<cStat>135</cStat>
<xMotivo>Evento registrado e vinculado a NF-e</xMotivo>
<chNFe>31190422365258000205650010000013861691406840</chNFe>
<tpEvento>110111</tpEvento>
<xEvento>CANCELAMENTO</xEvento>
<nSeqEvento>1</nSeqEvento>
<dhRegEvento>2019-04-02T17:53:56-03:00</dhRegEvento>
<nProt>131190008807784</nProt>
</infEvento>
</retEvento>
</nfeProc>


Desde já agradeço e por fim, só para saber mesmo, possuem algum manual sobre os componentes para que possa estudar. Obrigado.

  • Moderadores
Postado
Em 13/07/2019 at 22:09, Cleidiane Cardoso disse:

                         Abaixo segue uma parte do XML da nota, verificará que existe um evento vinculado a mesma, primeiro ela está autorizada, após isso teve um evento de cancelamento, a importação de todos os campos está correta, porém não consigo capturar somente o Evento "<xEvento>CANCELAMENTO</xEvento>" pois se importar sem ele ela constará como Autorizada e não Cancelada, pode descrever como seria a Sintaxe, pois discorrendo nas propriedades não acho qual captura este campo,  resta somente este quesito para que eu tenha êxito no total.

Além do XML da NFe, você precisa carregar também o XML do evento.

ACBrNFe1.NotasFiscais.Clear;
ACBrNFe1.NotasFiscais.LoadFromFile(NomeArqXMLNFe);
ACBrNFe1.EventoNFe.Evento.Clear;
ACBrNFe1.EventoNFe.LerXML(NomeArqXMLEventoNFe);

O XML do evento é criado pelo componente no momento do envio do mesmo, com o nome *-procEventoNFe.xml.

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Administradores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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 !!

  • Este tópico foi criado há 1960 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...