Ir para conteúdo
  • Cadastre-se

dev botao

Erro ao imprimir Danfe


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

Recommended Posts

Oi gente, estava re-fazendo umas coisas e agora na parte de imprimir o danfe (dar um preview na tela)

ele esta me dando o erro:

---------------------------

Debugger Exception Notification

---------------------------

Project NFeGenerator.exe raised exception class EAccessViolation with message 'Access violation at address 006462E8 in module 'NFeGenerator.exe'. Read of address 00000024'. Process stopped. Use Step or Run to continue.

---------------------------

OK Help

---------------------------

Eu estou usando delphi 7 e rave 5.1.3

nao sei o que pode estar errado...

Em outro form do programa (onde eu envio) ele envia e imprime td certinho...

soh nessa re-impressao a partir do xml é q esta com problema...

as vezes o erro aparece como:

---------------------------

Debugger Exception Notification

---------------------------

Project NFeGenerator.exe raised exception class EReadError with message 'Stream read error'. Process stopped. Use Step or Run to continue.

---------------------------

OK Help

---------------------------

Nao sei o que pode ser...

alguem tem uma dica ai?

o path do arquivo rave esta td certinho, pq antes ele nao tava achando, ai ja arrumei...

Link para o comentário
Compartilhar em outros sites

reslovi o problema de imprimir pela metade é alguma configuracao da minha impressora padrao o cutepdf...

entretanto, nao sei pq no demo ele funciona, mas no meu projeto nao...

copiei os componentes de NFe e rave do demo, colei no meu projeto, fiz a mesma coisa com o codigo do botao imprimir

e o erro persiste...

Link para o comentário
Compartilhar em outros sites

Descobri uma coisa!

ok, a situacao é a seguinte:

tenho um form principal que emite as NFes. Funciona normal.

Nesse form tenho um botao que chama outro form em modal que é um menuzinho de utilitarios!

Quando eu ponho o menu de utilitario como form inicial do projeto e uso a funcao de imprmir o danfe FUCNIONA!!!

Agora qdo eu deixo ele ser chamado pelo outro form e vou usar a funcao, ELE DA O ERRO!!!

Link para o comentário
Compartilhar em outros sites

  • Moderadores

O ideal é ter apenas um componente em todo o projeto.

Coloque o componente em um DataModule e sempre use o componente que está neste datamodule.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia André,

A dica de colocar no DataModule o componente, você esta se referindo aos componentes da NF-e ou seja ACBrNFe e o ACBrNFeDANFe ?

Pois tenho 3 forms (Envio, Cancelamento e Inutilização) na minha aplicação e os componentes foram adicionados nos 3 forms.

Colocar uma vez só em um DM, isso vai diminuir o tamanho do executável ?

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Depende, se o componente for criado e destruído na memória, sim, vai fazer muita diferença ao colocá-lo num Datamodule.

Tente colocar o componente no datamodule e fazer todos os forms apontarem pra ele.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde a todos,

Na minha aplicação tenho os componentes em 3 forms e não tive nenhum problema "erro estranho" ao fechar um form e abrir outro, ambos contendo o componente.

O que tudo indica, no meu caso, é recomendado que os componentes: ACBrNFe e ACBrNFeDANFe sejão colocados em um datamodule.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Colocar uma vez só em um DM, isso vai diminuir o tamanho do executável ?

Talvez um pouco, mas as consequências vão além de apenas isso. Claro, depende muito da forma como a pessoa usa os componentes. Vamos imaginar uma situação parecida com a sua (3 Forms e todos contendo o componente ACBrNFe).

Nesse caso, se eu criar os forms logo no início da aplicação como é o padrão do Delphi (ou seja, não fazer alterações no projeto.dpr ou alterar as opções do Project->Options->Forms), minha aplicação vai utilizar 3 vezes a memória RAM necessária para o componente do que se ele estivesse em apenas um lugar.

Se eu criar e destruir os 3 forms em runtime (removendo do Project->Options->Forms, e usando form1.create try...finaly form1.free end;), então posso consumir até menos memória do que se usar apenas um componente no datamodule. Mas precisarei ficar criando e destruindo os forms a todo momento, o que pode prejudicar o desenvolvimento da aplicação...

No caso do problema do igor, a impressão que tenho é que o controle de criação e destruição dos forms está afetando algum componente, e em alguma parte do código, o mesmo está sendo destruído e depois acessado gerando o AV.

Colocando o componente no DataModule, em geral, isso não aconteceria. Entretanto, se estiver desenvolvendo uma aplicação MDI precisará levar em conta que outros forms podem estar alterando as propriedades do componente ao mesmo tempo, o que justificaria, dependendo do componente, cada componente em seu Form.

Não parece ser o caso do menuzinho de utilitários do igor. :geek:

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Olá Amigos

Esse é um erro bem complicado, não foi nada fácil identificá-lo, porém, consegui resolver.

Não há necessidade de formatar a máquina.

Comigo o problema ocorria da seguinte forma:

Apresentava a msg de erro: "A component named CustomDestinatarioCX already exists.", ou "Stream read error", quando ia visualizar o Danfe em alguns computadores com Windows 7 e Windows XP, mas para complicar a situação em alguns computadores c/ windows XP o mesmo arquivo funcionava perfeitamente. Verifiquei e ambos eram SP3, ou seja não tinham nenhuma diferença aparentemente.

Instalei o Delphi no computador com windows 7 que apresentava o erro.

Passei o debug e notei que primeiro apareceia uma msg de erro que indicava que o arquivo estava corrompido, antes de aparecer a msg: "A component named CustomDestinatarioCX already exists." Então abri o arquivo DANFE_Rave513.rav no Rave Reports simulei uma alteração e salvei o arquivo com outro nome. Depois excluí o arquivo original e troquei o nome do novo arquivo p/ DANFE_Rave513.rav novamente.

A partir daí o problema sumiu. Copiei o arquivo p/ um pen drive e colei nos computadores que apresentavam o erro e funcionou certinho.

Notei que esse erro voltava a acontecer quando fazia uma cópia desse arquivo que estava no Windows Server p/ determinados computadores, porém se eu copiava o arquivo usando o pen drive o problema sumia.

Resumindo:

Tente gerar um novo arquivo RAV ou adquira uma nova cópia do arquivo: DANFE_Rave513.rav, que o problema deve ser resolvido.

Espero ter ajudado.

Um abraço a todos.

Link para o comentário
Compartilhar em outros sites

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