Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

  • Membros Pro
Postado

Bom Dia !

 

  Já realizei vários testes e não consegui identificar o problema.

  Também já procurei vários assuntos relacionados no fórum.

 

  A situação é a seguinte:

  Estou tentando enviar um evento de "Ciência de Operação", mas ao executar a função, o ACBrNFe retorna a mensagem "Campo cOrgao não informado" da unit pcnEventoNFe.

  Aparentemente os valores não estão sendo carregados, pois a chave de acesso da mesma unit também está em branco.

  PS: Não tem XML para ser carregado antes, pois justamente quero fazer a ciência da operação para baixar o XML.

ACBrNFe1.EventoNFe.idLote := StrToInt(UDModule.IBQryDOC_EVENTOSIDLOTE.AsString);
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.id := 'ID' + UDModule.IBQryDOC_EVENTOSTPEVENTO.AsString + UDModule.IBQryDOC_EVENTOSNSEQ.AsString;
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.cOrgao := StrToInt(Copy(UDModule.IBQryDOC_EVENTOSCHNFE.AsString,1,2));
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.tpAmb := StrToTpAmb(bBoolean,IntToStr(UDModule.IBQryDOC_EVENTOSTPAMB.AsInteger));
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.CNPJ := UDModule.IBQryDOC_EVENTOSCGCCPF_EMPRESA.AsString;
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.chNFe := UDModule.IBQryDOC_EVENTOSCHNFE.AsString;
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.dhEvento := Now;
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.tpEvento := StrToTpEvento(bBoolean,IntToStr(UDModule.IBQryDOC_EVENTOSTPEVENTO.AsInteger));
ACBrNFe1.EnviarEventoNFe(ACBrNFe1.EventoNFe.idLote);
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.nSeqEvento := UDModule.IBQryDOC_EVENTOSNSEQ.AsInteger;

Att.

 

Leandro

  

  • Moderadores
Postado

Bom Dia !

 

  Já realizei vários testes e não consegui identificar o problema.

  Também já procurei vários assuntos relacionados no fórum.

 

  A situação é a seguinte:

  Estou tentando enviar um evento de "Ciência de Operação", mas ao executar a função, o ACBrNFe retorna a mensagem "Campo cOrgao não informado" da unit pcnEventoNFe.

  Aparentemente os valores não estão sendo carregados, pois a chave de acesso da mesma unit também está em branco.

  PS: Não tem XML para ser carregado antes, pois justamente quero fazer a ciência da operação para baixar o XML.

ACBrNFe1.EventoNFe.idLote := StrToInt(UDModule.IBQryDOC_EVENTOSIDLOTE.AsString);
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.id := 'ID' + UDModule.IBQryDOC_EVENTOSTPEVENTO.AsString + UDModule.IBQryDOC_EVENTOSNSEQ.AsString;
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.cOrgao := StrToInt(Copy(UDModule.IBQryDOC_EVENTOSCHNFE.AsString,1,2));
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.tpAmb := StrToTpAmb(bBoolean,IntToStr(UDModule.IBQryDOC_EVENTOSTPAMB.AsInteger));
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.CNPJ := UDModule.IBQryDOC_EVENTOSCGCCPF_EMPRESA.AsString;
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.chNFe := UDModule.IBQryDOC_EVENTOSCHNFE.AsString;
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.dhEvento := Now;
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.tpEvento := StrToTpEvento(bBoolean,IntToStr(UDModule.IBQryDOC_EVENTOSTPEVENTO.AsInteger));
ACBrNFe1.EnviarEventoNFe(ACBrNFe1.EventoNFe.idLote);
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.nSeqEvento := UDModule.IBQryDOC_EVENTOSNSEQ.AsInteger;

Att.

 

Leandro

Bom dia

Vou lhe responder igualmente fiz a outro colega nosso que postou o código semelhante ao seu:

Vamos fazer um teste de mesa rápido?

antes de começar você faz um código assim:

ACBrNFe1.EventoNFe.Evento.Clear;

correto?

agora vamos olhar o seu código e peguei somente 3 linhas me diga oque vai acontecer ?

ACBrNFe1.EventoNFe.Evento.Add.InfEvento.id := 'ID' + UDModule.IBQryDOC_EVENTOSTPEVENTO.AsString + UDModule.IBQryDOC_EVENTOSNSEQ.AsString;
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.cOrgao := StrToInt(Copy(UDModule.IBQryDOC_EVENTOSCHNFE.AsString,1,2));
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.tpAmb := StrToTpAmb(bBoolean,IntToStr(UDModule.IBQryDOC_EVENTOSTPAMB.AsInteger));

pegue como base o código acima que postei e que talvez tenha em seu código!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Membros Pro
Postado

Quando você diz "antes de começar você faz um código assim:", você está me perguntando ou me orientando ?

Já fiz testes utilizando e não utilizando "ACBrNFe1.EventoNFe.Evento.Clear";

Acredito que o fórum é para cooperar e não para criar enigmas. 

Tento ao máximo buscar informações nos posts já abertos e só registro um novo em última instância que é o caso.

Pelo forma que você falou, deve ser uma situação MUITO SIMPLES que estou errando e me desculpe por não ter entendido o retorno, mas as vezes passamos por isso.

 

Att.

 

Leandro

  • Moderadores
Postado

Quando você diz "antes de começar você faz um código assim:", você está me perguntando ou me orientando ?

Já fiz testes utilizando e não utilizando "ACBrNFe1.EventoNFe.Evento.Clear";

Acredito que o fórum é para cooperar e não para criar enigmas. 

Tento ao máximo buscar informações nos posts já abertos e só registro um novo em última instância que é o caso.

Pelo forma que você falou, deve ser uma situação MUITO SIMPLES que estou errando e me desculpe por não ter entendido o retorno, mas as vezes passamos por isso.

 

Att.

 

Leandro

Sim o fórum é pra ajudar!

mas ajudar também a aprender!

tentei despertar a curiosidade sua para ver se achava algo simples conforme mencionou acima!

bom se tivesse antes pesquisado aqui no fórum iria achar a resposta !

mas enfim

 

Observe que você faz o clear para limpar uma lista! conforme falei.

então para cada add que você tem ali está criando um novo evento!!

que no caso por serem 7 campos a preencher você tem 7 eventos adicionados com o add!

se olhar no demo na pasta exemplos temos lá um

with ACBrNFe1.EventoNFe.Evento.Add do
begin
  InfEvento.id := xx;
  InfEvento.cOrgao := yyy;
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Membros Pro
Postado

Juliomar, obrigado pelo retorno

Fiz, mas não entendi.

 

Não sei qual a diferença entre

with ACBrNFe1.EventoNFe.Evento.Add do
begin
InfEvento.id := xx;
InfEvento.cOrgao := yyy;

e

ACBrNFe1.EventoNFe.Evento.Add.InfEvento.id := xx;
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.cOrgao := yyy;

se realmente for esse o problema, pois só isso que alterei....

 

Até onde eu sabia With era para simplificar.

The With keyword is a convenience provided by Delphi for referencing elements of a complex variable, such as a record or object. 
 
It simplifies the code by removing the need to prefix each referenced element with the complex variable name. 
 
For example : 
 
myObject.colour := clRed;
myObject.size   := 23.5;
myObject.name   := 'Fred'; 
 
can be rewritten : 
 
With myObject do
begin
  colour := clRed;
  size   := 23.5;
  name   := 'Fred';
end; 

Sinceramente, voei...

 

Vou olhar com calma depois

Vlw.

 

Leandro

  • Moderadores
Postado

Boa tarde

Jura pra mim que não entendeu a diferença de uso?

quantas informações de eventos estão sendo criados? duas !!!!

o Add sempre vai adicionar novo

Abra os fontes do componente veja que é um lista de eventos ali ao dar add você vai estar adicionando diversos

with ACBrNFe1.EventoNFe.Evento.Add do
begin
InfEvento.id := xx;
InfEvento.cOrgao := yyy;

e

ACBrNFe1.EventoNFe.Evento.Add.InfEvento.id := xx;
ACBrNFe1.EventoNFe.Evento.Add.InfEvento.cOrgao := yyy;
  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.