Tecnologia além do código.
Régys Borges da Silveira
← Voltar para explorar os artigos

Como imprimir um evento utilizando o ACBrNFe

Neste artigo 3 tópicos

Não existe ainda uma norma que regulamente a impressão da Carta de Correção ou de qualquer evento relacionado a nota eletrônica, o ACBrNFe possui algumas métodos para a impressão de eventos que foram implementadas com base nas sugestões de nossos usuários, segue abaixo a forma de utilização de cada uma delas.

Impressão do evento diretamente para a impressora

  if PrintDialog.Execute then
  begin
    ACBrNFeDANFERaveCB.MostrarPreview := False;
    ACBrNFeDANFERaveCB.NumCopias      := PrintDialog.Copies;
    ACBrNFeDANFERaveCB.Impressora     := Printer.Printers[Printer.PrinterIndex];

    ACBrNFe.NotasFiscais.Clear;
    ACBrNFe.NotasFiscais.LoadFromString(<XML Nota Eletrônica>);

    ACBrNFe.EventoNFe.Evento.Clear;
    ACBrNFe.EventoNFe.LerXMLFromString(<XML Evento>);

    ACBrNFe.ImprimirEvento;
  end;

Visualizar evento antes de imprimir

  ACBrNFeDANFERaveCB.MostrarPreview := True;

  ACBrNFe.NotasFiscais.Clear;
  ACBrNFe.NotasFiscais.LoadFromString(<XML Nota Eletrônica>);

  ACBrNFe.EventoNFe.Evento.Clear;
  ACBrNFe.EventoNFe.LerXMLFromString(<XML Evento>);

  ACBrNFe.ImprimirEvento;

Geração do arquivo PDF

  ACBrNFe.DANFE.PathPDF := PathPDF;
  ACBrNFeDANFERaveCB.MostrarPreview := True;

  ACBrNFe.NotasFiscais.Clear;
  ACBrNFe.NotasFiscais.LoadFromString(<XML Nota Eletrônica>);

  ACBrNFe.EventoNFe.Evento.Clear;
  ACBrNFe.EventoNFe.LerXMLFromString(<XML Evento>);

  ACBrNFe.ImprimirEventoPDF;
Compartilhar por e-mail

21 comentário(s)

  1. Bom dia Régys, estou com dificuldade para fazer a geração do PDF da CCe…

    quando chamo a procedure
    ACBrNFe1.EventoNFe.LerXMLFromString(ArquivoCCe) sempre tenho retorno que o ‘Campo cOrgao não informado’.
    Acompanhando com debug pude perceber que no LerXMLFromString, linha Result := RetEventoNFe.LerXml ele sempre retorna o Result como false.

    No RetEventoNFe.LerXml ele nunca entra no if (Leitor.rExtrai(1, ‘evento’) ”) then e nem no if (Leitor.rExtrai(1, ‘retEnvEvento’) ”) or (Leitor.rExtrai(1, ‘retEvento’) ”) then.

    Resumindo, ele não consegue ler o XML do Evento. Há algo que posso fazer? O caminho do xml CCe está correto…

  2. Régys, estou com problema para cancelar cte, aparece esta mensagem ‘Campo cOrgao não informado.’ Oque poderia ser?

  3. boa tarde, se eu tenho uma lista de xml de carta de correção, eu não consigo imprimir tudo junto? tem que ser 1 por 1?

  4. Parabens Regis! Sua ajuda sempre preciosa!
    Gostaria de contatar contigo para tirar umas duvidas a respeito do seu suporte!
    Obrigado

  5. Sim Régys,
    Instalei toda programação em uma nova máquina e com todo ACBR atualizado.
    E foi nessa atualização que começou a dar um erro que o campo cOrgao não foi encontrado.
    Aí vi seu artigo e tentei fazer o teste com a impressão direto

  6. Caro Regys,
    Essa rotina de impressão direta parece muito interessante. Porém ao fazer um teste, ocorre um erro dizendo que o campo cOrgao não foi informado. Esse campo deveria estar no XML? Como resolver.
    Obriado

Dê-nos sua opinião, seu comentário ajuda o site a crescer e melhorar a qualidade dos artigos.

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Um próximo passo para cada interesse.

Continue estudando com os livros, acompanhe as videoaulas ou consulte as soluções para o seu projeto.

Descubra mais sobre Régys Borges da Silveira

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continuar lendo