Erro ao imprimir Danfe(acbrnfe).

Delphi

22/11/2011

Galera, bom dia
Estou tendo um problema na impressão do Danfe.
Conforme vamos utilizando o sistema durante o dia, te momentos que na hora de imprimir(ACBrNFeDANFERave), o componente imprimir a nota anterior, mesmo passando o caminho certo do xml, nao funciona. Se o sistema for finalizado e iniciado novamente, a impressão sai correta. O que estou entendo, que deve estar ficando algum lixo no componente, mesmo limpando o componente(NotasFiscais.Clear)alguem pode me ajudar?
Agua Cascatai

Agua Cascatai

Curtidas 0

Respostas

Euclides Cunha

Euclides Cunha

22/11/2011

Tenho por mim que um free resolve seu problema... pois não trabalho com este componente, mas tudo leva a crer q tem q esvaziar a sua memória.
GOSTEI 0
Gustavo Bretas

Gustavo Bretas

22/11/2011

Faz tempo que não trabalho com esse componente, mas a NFe fica em uma lista, e vc precisa limpar a lista antes de imprimir uma nova a NF.

Verifica se ainda existe: ACBrNFe1.NFe.Clear ou ACBrNFe1.NotaFiscal.Clear

Melhor ainda, no fonte do projeto que vc deve ter baixado do SVN, tem um demo com fonte, só conferir la!

Abraço!
GOSTEI 0
Agua Cascatai

Agua Cascatai

22/11/2011

Obrigado pela ajuda, mas estou limpando o componente.
Gostaria de tentar criar os componentes(TAcbrNFe e TACBrNFeDANFERave) em tempo de execução para ver se soluciono o erro.

Alguem pode me ajudar?
GOSTEI 0
Leonardo Xavier

Leonardo Xavier

22/11/2011

Bom dia!

Amigo você já tentou criar o seu componente em tempo de execução, conforme o que você postou logo acima? Se ainda não, tente colocar seu código dando um timer para a limpeza, pois tive já vários problemas com impressoras, mas todos eles eram relacionados com o spool de impressão quando eu executava a limpesa de componente não adiantava nada mas quando comecei a limpar o spool deu certo. Faça o teste e veja como fica, se o seu problema irá persistir.

procedure TForm1.Button1Click(Sender: TObject); 
begin 
   WinExec(pchar(cmd /c net stop spooler) ,SW_HIDE); 
   WinExec(pchar(cmd /c cd %systemroot%\system32\spool\PRINTERS) ,SW_HIDE); 
   WinExec(pchar(cmd /c del /f /s *.shd) ,SW_HIDE); 
   WinExec(pchar(cmd /c net start spooler) ,SW_HIDE); 
end;

GOSTEI 0
POSTAR