Ir para conteúdo
  • Cadastre-se

dev botao

Alterar uma propriedade do AcbrNFe e capturar o xml atualizado via componente


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

Recommended Posts

Postado

Ola a todos tenho um procedimento como abaixo descrito, que percorro o xml, altero um campo desejado, porem ao chamar o metodo gravar xml ou tentar capturar o xml do componente o mesmo nao me retorna com o valor que alterei, o que estou fazendo de errado?
 

var
  Nota: TCollectionItem;
  prodxml: TDetCollectionItem;
begin
  if not  OpenDialog1.Execute then Exit;

  ACBrNFe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName);

  for Nota in ACBrNFe1.NotasFiscais do
  begin
    
    for prodxml in NotaFiscal(Nota).NFe.Det do
    begin
     
      if prodxml.Prod.nItem.ToString.Equals( Edit1.Text) then
      begin
        Memo1.Lines.Add(' ITEM ENCONTRADO , NCM = ' + prodxml.Prod.NCM );
        prodxml.Prod.NCM := Edit2.Text;
     
      end;
      
    end;

    NotaFiscal(Nota).GravarXML('', 'c:\intel'); /// XML SALVO é o mesmo que carreguei no opendialog e nao com a propriedade ncm alterada.
    RichEdit1.Text := NotaFiscal(Nota).GerarXML; // o mesmo acontece aqui, mesmo se chamar metodo xml , vem xml desatualizado
  end;
  

  • Moderadores
Postado

Aparentemente falta chamar o método Assinar, após o ACBrNFe1.GerarNFe ou ACBrNFe1.NotasFiscais.GerarXML.

O método GravarXML deve refletir as alterações após o GerarNFe ou GerarXML.

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

Projeto ACBr

 

 

  • Moderadores
  • Solution
Postado
9 minutos atrás, gss200610 disse:

Sem o método assinar ele não vai persistir os dados no componente?

O GerarNFe / GerarXML vai gerar o XML internamente no componente.

Para gravar em arquivo é preciso o componente estar configurado pra isso e a chamada ao método Assinar.

O GravarXML vai apenas gravar em arquivo o XML no estado atual.

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

Projeto ACBr

 

 

Postado (editado)

Ótimo, então posso alterar qualquer propriedade e após chamar o método assinar capturar o XML da propriedade?

Pra apenas gerar no componente atualizado preciso chamar o assinar?

 

Editado por gss200610
  • Fundadores
Postado

Use a força, leia os fontes... veja:

procedure NotaFiscal.Assinar;
var
  XMLStr: String;
  XMLUTF8: AnsiString;
  Leitor: TLeitor;
begin
  with TACBrNFe(TNotasFiscais(Collection).ACBrNFe) do
  begin
    if not Assigned(SSL.AntesDeAssinar) then
      SSL.ValidarCNPJCertificado( NFe.Emit.CNPJCPF );
  end;

  // Gera novamente, para processar propriedades que podem ter sido modificadas   <==== AQUI
  XMLStr := GerarXML;
.....

 

  • Curtir 2
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

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

The popup will be closed in 10 segundos...