Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Bom dia a Todos,

 

Desculpe se estou abrindo um tópico que já existe no fórum, procurei muito, e fora procurar algo no fonte do componente.

 

Bom vamos ao meu problema.

 

Estou implementando a NFC-e no sistema da empresa em que trabalho e me deparei com o seguinte caso:

 

Estou utilizando a impressora Daruma DR700, no caso dela estou utilizando o ACBrNFeDANFeESCPOS; 

 

Se faço uma NFC-e com mais de 200 Itens, ela não imprimi o DANFE por completo. Então encontrei a propriedade: LinhasBuffer.

 

Mesmo assim após informar uma certa quantidade de linhas não imprimi por completo. 

 

Testei com LinhasBuffer: 100 , 50 , 20 , 10, 1; mesmo assim não saia o danfe por completo.

 

Existe alguma solução para isso?

 

Obrigado desde já pelo auxilio.

 

Atenciosamente,

 

Alan Leônidas da Silva. 

 

Atenciosamente,

Alan Leônidas da Silva

Link para o comentário
Compartilhar em outros sites

Olá a todos,
 
Ainda sobre meu caso acima, não sei se fiz certo ou errado (Aos mestres ACBR me desculpe se estou errado).
 
Resolvi, colocar um Sleep dentro da procedure TACBrNFeDANFeESCPOS.DoLinesChange(Sender: TObject);
 
Após isso começou a imprimir o cupom por completo;
 
Após o teste acima, resolvi criar uma propriedade no componente: IntervalBuffer, onde se o mesmo estiver maior que 0 (zero) irá ativar o Sleep com o tempo determinado por ele.
 
 
procedure TACBrNFeDANFeESCPOS.DoLinesChange(Sender: TObject);
begin
 
  if (FLinhasBuffer > 0) and
     (FBuffer.Count > FLinhasBuffer) then
   begin
     ImprimePorta(FBuffer.Text);
     FBuffer.Clear;
     if FIntervalBuffer > 0 Then
        Sleep(FIntervalBuffer);
   end;
 
end;
 
Segue em anexo o ACBrNFeDANFeESCPOS.pas alterado por mim.
 
Novamente me desculpe se fiz alguma alteração desnecessária.
 
Obrigado desde já pelo auxilio.
 
Atenciosamente,
 
Alan Leônidas da Silva. 
 

ACBrNFeDANFeESCPOS.pas

  • Curtir 1

Atenciosamente,

Alan Leônidas da Silva

Link para o comentário
Compartilhar em outros sites

Bom dia Régys.

 

Então devo estar preenchendo alguma configuração incorreta. Segue em anexo imagem de como fica o DANFE se deixar com 0 (Zero) na propriedade LinhasBuffer.

 
Segue a configuração, e como fica na impressora.
 
Mesmo colocando um valor na propriedade LinhasBuffer, ela fica da mesma forma ela não imprimi o Danfe por completo.
 
Apenas quando preencho a propriedade IntervalBuffer (Criado por mim) que imprimi corretamente.
 
Mais uma vez obrigado pela ajuda e atenção Régys;
 
Atenciosamente,
Alan Leônidas da Silva

post-5833-0-22305500-1427893147_thumb.pn

post-5833-0-61419600-1427893190_thumb.jp

post-5833-0-63272600-1427893228_thumb.jp

post-5833-0-22305500-1427893147_thumb.pn

post-5833-0-61419600-1427893190_thumb.jp

post-5833-0-63272600-1427893228_thumb.jp

Atenciosamente,

Alan Leônidas da Silva

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...
  • Moderadores

Vou fazer testes de estresse de impressão é ver se consigo simular o que acontece com você, se possível poderia me passar mais detalhes.

Como está sendo enviado, um xml de exemplo, quanto mais informação melhor para poder simular aqui.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Fiz este teste hoje e também tive o mesmo problema. O DANFCe parou no meio do item 202.

 

Colocando um sleep com um buffer de 40 linhas, conforme o Alan sugeriu, resolveu o problema.

 

Daruma DR700L é o modelo.

 

Upd: Se eu ativar a impressão em duas linhas por item, o DANFCe imprime completo, mas enquanto imprime recebo a mensagem de time-out.

post-775-0-34462400-1429221541.png

post-775-0-37222900-1429221568_thumb.jpg

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

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

Bom dia Régys.

 

Estou anexando o XML com todos os itens que utilizei para teste. Uma observação, pode ser que o "Hardware" interfira nesse caso, por exemplo:

 

Minha máquina é I7 com 4 de RAM, como o processador é "rápido" isso pode interferir no Buffer da impressora.

 

Desculpe a pergunta, mas o teste que você fez foi em qual Hardware?

 

Estou falando isso, pois tivemos problema em um clientes com Buffer de impressão, em um outro caso idêntico a esse mas em relatório feito por nossa empresa (Nada com o componente ACBR, apenas estou exemplificando).

 

Sem a alteração feita por mim não consigo imprimir o DANFE até o final.

 

Existe mais alguma informação que deseja que lhe passe?

 

Algumas informações sobre a impressora:

 

DR700 L;

Testei a impressão com duas versões da Impressora a 

Versão: 02.51.00 com o erro que documentei acima;

 

Sexta feira (17/04/2015) Mudei a versão da Impressora para poder utilizar via Spooler (Modificação feita pelo próprio suporte da Daruma).

Versão: 01.21.00, com essa versão fiz alguns teste o erro não ocorreu.

 

Qual seria a sua versão Régys.

 

Pelo que vi a versão do [bigWings] está na na versão 02.51.00 também, acredito que a solução proposta por mim para essa versão corrige, para demais versões as propriedades criadas podem estar igual a 0;

 

Mais uma vez muito obrigado pela atenção.

 

51150436934982000136650010000001489803359536-nfe.xml

Atenciosamente,

Alan Leônidas da Silva

Link para o comentário
Compartilhar em outros sites

  • Moderadores

- A versão da minha impressora é uma DR700H-e e o firmware é o 01.20.00.

- Computador de testes I7, 16GB de RAM.

 

Consegui reproduzir o problema, na verdade ele ocorre por problemas de comunicação com a impressora, como ela não devolve um status como o ECF os comandos "encavalam" o que leva ao travamento da synaser que é quem envia os comandos pela porta serial.

 

Estou tentando fazer um tratamento para isso de forma a melhorar a comunicação com a impressora.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

Ok, Régys.

 

Assim que tiver uma posição nos avise por favor.

 

Você tentou fazer o teste com a propriedade que criei?

 

Pois hoje estou utilizando essa solução. Acredito que BigWings deve estar utilizando a mesma solução.

 

Obrigado mais uma vez pela solução.

Atenciosamente,

Alan Leônidas da Silva

Link para o comentário
Compartilhar em outros sites

Sei que não é o lugar adequado, não estou postando uma dúvida somente uma observação sobre o arquivo xml, abrir ele aqui com o meu soft e cliquei na impressão, demorou quase dois minutos pra exibir o fast report, isso é normal ?

 

Uso um Notebook da Dell com 4GB, processador com 5 núcleos (i5).

Editado por Solivan

Sistema de Automação Comercial para diversos segmentos
NF-e, NFC-e, SPED Fiscal - www.arenasoft.com.br

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Ok, Régys.

 

Assim que tiver uma posição nos avise por favor.

 

Você tentou fazer o teste com a propriedade que criei?

 

Pois hoje estou utilizando essa solução. Acredito que BigWings deve estar utilizando a mesma solução.

 

Obrigado mais uma vez pela solução.

 

Mesmo com a propriedade você vai ter problemas dependendo do XML e da impressora, estamos estudando uma solução, assim que tiver um retorno posto aqui.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Sei que não é o lugar adequado, não estou postando uma dúvida somente uma observação sobre o arquivo xml, abrir ele aqui com o meu soft e cliquei na impressão, demorou quase dois minutos pra exibir o fast report, isso é normal ?

 

Uso um Notebook da Dell com 4GB, processador com 5 núcleos (i5).

Você está usando qual impressora não fiscal?

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

Bom dia Régys, Desculpe-me pela demora.

 

Segue abaixo os dados.

 

Hardware:

 

Sistema Operaciona: Windows 7 Ultimate 32-bits

Intel Core i7-3770 CPU @ 3.40Ghz, 4,0GB RAM;

 

(Versão atual da impressora abaixo não ocorre o erro. Versão que ocorria o erro 02.51.00)

 

Impressora Dr700 L- Versão 01.21.00

Velocidade de impressão: 115.200

 

O Xml ja lhe enviei;

 

A conexão utilizada está sendo USB, onde estou utilizando o driver da fabricante que emula uma porta serial (porta emulada COM2) :

 

Segue em anexo o Driver utilizado:

 

Driver_Spooler_700.exe

 

Bom acho que o XML não precisa pois lhe enviei em uma mensagem anterior.

 

Precisa de mais alguma informação Regys?

 

Obrigado pela atenção.

post-5833-0-93942000-1430228114_thumb.pn

post-5833-0-20122500-1430228175_thumb.pn

Driver_Spooler_700.zip

post-5833-0-93942000-1430228114_thumb.pn

post-5833-0-20122500-1430228175_thumb.pn

Driver_Spooler_700.zip

Atenciosamente,

Alan Leônidas da Silva

Link para o comentário
Compartilhar em outros sites

Bom dia Regys.

 

Fiz o Update do fonte e percebi que teve uma modificação no ACBrNFeDANFeESCPOS.pas.

 

Percebi que foi colocado uma verificação:

 

if not Self.Ativo then
    raise Exception.Create('Componente "ACBrNFeDANFeESCPOS" não está ativo!');
 
  GravaLog('-- TX -> ' + AString, True);
  try
    // limpa o buffer de envio
    FDevice.Serial.Purge;
 
    // envia novo buffer
    FDevice.EnviaString(AString);
  except
    on E: Exception do
    begin
      GravaLog('');
      GravaLog('-- ERRO -> ' + E.ClassName + ': ' + E.Message);
      GravaLog('');
      raise;
    end;
  end;
 
 
Essa Linha: FDevice.Serial.Purge;
 
Se tento fazer comunicação com uma impressora na Rede Ex:
 
\\Nome_da_Maquina\Compartilhamento
 
Ele retorna um erro de comunicação.
 
Na versão anterior ia normalmente.
 
Fui fazer um teste com uma Epson TM 20, onde o driver que a veio junto com o equipamento não gera uma porta serial emulada.
 
Fiz o mesmo teste com a Daruma DR700, via porta serial vai normalmente, mas via rede não imprimi.
 
Se coloco um try except imprimi normalmente.
 
Foi você que implementou esse tratamento?
 
 
segue em anexo os .pas 
 
ACBrNFeDANFeESCPOSAtual.pas - É o arquivo atual que encontra-se no SVN (Com falha acima)
ACBrNFeDANFeESCPOSAnterior.pas - É o arquivo versão anterior imprimi corretamente pois não tem a referencia acima.
 
Obrigado mais uma vez pela ajuda e desculpe pelo incomodo;

ACBrNFeDANFeESCPOSAnterior.pas

ACBrNFeDANFeESCPOSAtual.pas

ACBrNFeDANFeESCPOSAnterior.pas

ACBrNFeDANFeESCPOSAtual.pas

Atenciosamente,

Alan Leônidas da Silva

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Alan, removi a linha, havia colocado somente para testes e acabei esquecendo.

 

Aproveitando, fiz os seguintes testes aqui.

- Teste com cabo serial ligado diretamente ao computador. OK

- Teste com cabo serial ligado a adaptador USB e ao computado. OK

- Teste com cabo USB diretamente ao computador em USB 1.0/2.0. OK

- Teste com cabo USB diretamente ao computador em USB 3.0. OK

- Teste com cabo USB ligado por meio de dockstation ao computador. Intermitente

 

Pelo que pude perceber, tudo está ok com estes novos fontes, somente no caso do dockstation que não, mas aparentemente ele é quem causa o problema, outra coisa que pude perceber é que a versão da impressora fiscal também influencia (como você havia dito anteriormente).

 

Adicionei a propriedade IntervaloBuffer conforme sugerido anteriormente.

 

 

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

Boa tarde Régys.

 

Acabei de baixar a nova versão. Testei e funcionou normalmente.

 

Acredito que o problema está na versão 02.51 da Daruma Dr700. Nesse caso a propriedade criada irá resolver o problema.

 

Muito obrigado pelo empenho e por me ajudar.

 

Desculpe a insistência.

 

Até a próxima :-P 

Editado por Alan Leonidas da Silva

Atenciosamente,

Alan Leônidas da Silva

Link para o comentário
Compartilhar em outros sites

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