GARANTIR DESCONTO

Fórum Ajuda por favor(ACBRNFE) #409643

23/11/2011

0

Bom dia, galera estou com a seguinte dificuldade:
Desenvolvi para a empresa, um sistema gerenciador de NF-e, porém, esta ocorrendo o seguinte problema.
O sistema, gera, valida,assina e transmiti normalmente, o erro(Access violation at address 00EC518E IN MODULE. READ OF ADDRESS 00000024) ocorre na hora de imprimir apos esses passos. O interessante que se eu sair e entrar no sistema e mandar imprimir sem efetuar esses passos, o erro nao ocorre.

Alguem pode me ajudar?
Agua Cascatai

Agua Cascatai

Responder

Posts

23/11/2011

Leonardo Xavier

Você salva estes dados em algum arquivo log ou txt? Se salvar é mais simples imprimir, pois você poe imprimir depois do arquivo estar pronto com os dados certinho e o seu problema estará resolvido.
Responder

Gostei + 0

23/11/2011

Agua Cascatai

Obrigado pela ajuda, nao.
É salvo em .xml que no qual é gerado pelo proprio sistema.
Responder

Gostei + 0

23/11/2011

Leonardo Xavier

Este seu problema é apresentado logo na primeira impressão ou depois de algumas?
Responder

Gostei + 0

23/11/2011

Agua Cascatai

Ola, na primeira, logo que eu faço os processos, validar, assinar, e enviar se eu imprimir depois, ocorre o erro. Se sair e entrar no sistema e manda imprimir, funciona normalmente.
Responder

Gostei + 0

23/11/2011

Leonardo Xavier

Então o problema com toda certeza é na conexão com o seu xml. Acho que o seu arquivo deve estar sendo lido ou gravado ao mesmo tempo que esta sendo realizada a tentativa de impressão, não tenho duvidas disso. Se você fecha seu aplicativo e o abre novamente a sua conexão é estalecida sem problemas pois o arquivo não esta sendo editado, minha sugestão é que antes do processo de impressão você desfaça e refaça a conexão via código. Experimente e poste aqui. Abraços
Responder

Gostei + 0

24/11/2011

Agua Cascatai

Obrigado pela atenção, ainda nao consegui resolver o problema.
Segue o codigo para da impressao.

procedure TfrmGerenciadornotaeletronica.printnota;
begin
//faco a impressao
AcbrNFe1.NotasFiscais.Clear;
with TZReadOnlyQuery.Create(nil) do
try
Connection := DmPrincipal.MyDB;
SQL.Add(SELECT CAMINHOXML FROM TBLNOTAFISCAL WHERE CIDCHAVES=+cdsnotafiscalcidchaves.AsString+);
Open;
if FilesExists(FieldByName(caminhoxml).AsString) then
begin
AcbrNFe1.NotasFiscais.LoadFromFile(FieldByName(caminhoxml).AsString);
if AcbrNFe1.NotasFiscais.Items[0].NFe.Ide.tpEmis = teDPEC then
begin
AcbrNFe1.WebServices.ConsultaDPEC.NFeChave := AcbrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID;
AcbrNFe1.WebServices.ConsultaDPEC.Executar;
AcbrNFe1.DANFE.ProtocoloNFe := AcbrNFe1.WebServices.ConsultaDPEC.nRegDPEC + + DateTimeToStr(AcbrNFe1.WebServices.ConsultaDPEC.retDPEC.dhRegDPEC);
end;
AcbrNFe1.NotasFiscais.Imprimir;
end
else
ShowMessage(Arquivo não encontrado);
finally
free;
end;
end;
Responder

Gostei + 0

24/11/2011

Agua Cascatai

Estava pensando em criar e destruir o componente no momento da impressao.
Como faço?
Responder

Gostei + 0

24/11/2011

Emerson Nascimento

talvez você esteja liberando o componente da memória depois de enviar, daí quando vai tentar imprimir dá o erro.
Responder

Gostei + 0

24/11/2011

Agua Cascatai

o mais interessante que aparece a tela de configuração da impressão.
ai quando damos o OK para o preview ocorre o erro.
Responder

Gostei + 0

24/11/2011

Leonardo Xavier

Tente fazer isso:

procedure TfrmGerenciadornotaeletronica.printnota;
begin
//faco a impressao
AcbrNFe1.NotasFiscais.Clear;
with TZReadOnlyQuery.Create(nil) do
try
close;//adicionada
Connection := DmPrincipal.MyDB;
SQL.Add(SELECT CAMINHOXML FROM TBLNOTAFISCAL WHERE CIDCHAVES=+cdsnotafiscalcidchaves.AsString+);
Active:=true;//adicionada
prepared;//adicionada
Open;
if FilesExists(FieldByName(caminhoxml).AsString) then
begin
AcbrNFe1.NotasFiscais.LoadFromFile(FieldByName(caminhoxml).AsString);
if AcbrNFe1.NotasFiscais.Items[0].NFe.Ide.tpEmis = teDPEC then
begin
AcbrNFe1.WebServices.ConsultaDPEC.NFeChave := AcbrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID;
AcbrNFe1.WebServices.ConsultaDPEC.Executar;
AcbrNFe1.DANFE.ProtocoloNFe := AcbrNFe1.WebServices.ConsultaDPEC.nRegDPEC + + DateTimeToStr(AcbrNFe1.WebServices.ConsultaDPEC.retDPEC.dhRegDPEC);
end;
AcbrNFe1.NotasFiscais.Imprimir;
end
else
ShowMessage(Arquivo não encontrado);
finally
free;
end;
end;

Responder

Gostei + 0

25/11/2011

Leonardo Xavier

Alguma resposta para este post?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar