Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Olá pessoal,

Estou tendo um problema com o passo 26 para certificação do Pay&Go. É um teste onde tem que imprimir um gerencial com 400 linhas. Faço o teste, ele abre e imprime o gerencial até a última linha (400), exibe a mensagem "Destaque 1ª via" e em seguida ao invés de iniciar a impressão da 2ª, exibe a mensagem "Impressora não responde. Tentar novamente?"

No ACBrLog mostra o seguinte:

-- 22/09 18:24:20:293     RX <- ACK = 6
-- 22/09 18:24:20:324     RX <- [STX][165][NUL][NUL][FS][192][132][FS][FS][14][SOH][FS][ETX]026D
-- 22/09 18:24:20:324 
----------------- ERRO -----------------
Erro retornado pela Impressora: Epson

Erro: 0E01 - Número de linhas em documento excedido.
----------------------------------------

-- 22/09 18:24:20:324 Estado
-- 22/09 18:24:20:324                 TX -> [STX][166][BS][16][FS][NUL][NUL][ETX]00DF
 

Meu ambiente:

Windows, Delphi XE5, ECF Epson TM-T81F (FB3) Ligada à COM1

No meu sistema já setei:

ACBrECF.ReTentar := False;

ACBrECF.TimeOut := 20;

ACBrECF.MaxLinhasBuffer   := 3

 

Desde já agradeço qualquer dica.

  • 3 semanas depois ...
  • Consultores
Postado

O modelo da impressora Epson que está utilizando permite mais do que 400 linhas?

[]'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.
  • Consultores
Postado

Obrigado pelo retorno. (:

[]'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.
  • Fundadores
Postado

Defina ACBrECF1.MaxLinhasBuffer := 3 (algo diferente de 0, que é o valor Default)

nesse caso, o método: TACBrECF.LinhaRelatorioGerencial, irá detectar o erro de muitas linhas no Gerencial, e já irá tratá-lo (abrindo um novo gerencial)

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Postado

Olá Daniel, obrigado pelo retorno.

Isso não está acontecendo. Já está definido  ACBrECF1.MaxLinhasBuffer := 3

Está assim no meu código:

ACBrECF.ReTentar := False;

ACBrECF.TimeOut := 20;

ACBrECF.MaxLinhasBuffer   := 3

  • 3 semanas depois ...
Postado

Daniel e Juliomar, muito obrigado pelo "pente fino" que estão fazendo aí por causa desse tópico. Só para posicionar, homologuei o meu sistema utilizando uma bematech e não tive problemas. Como acredito que não terei que imprimir um vinculado com mais de 400 linhas nos meus clientes, estou tranquilo até agora.

Obrigado.

  • Fundadores
Postado

Juiomar,

Funciona... eu implementei essa rotina justamente para esse teste (sem sentido) da NTK

Veja o método "Procedure TentaImprimirLinhas( Texto: AnsiString; IndiceBMP: Integer )  ;" em ACBrECF.pas:5190

  Procedure TentaImprimirLinhas( Texto: AnsiString; IndiceBMP: Integer )  ;
  var
     Est : TACBrECFEstado ;
     OldTimeOut : LongInt ;
     Erro : String ;
  begin
     ComandoLOG := 'LinhaRelatorioGerencial( "'+Texto+'", '+IntToStr(IndiceBMP)+' )';

     try
        fsECF.LinhaRelatorioGerencial( Texto, IndiceBMP ) ;
     except
       On E : Exception do
       begin
         Erro := E.Message ;

         // Não conseguiu imprimir ? Verifique se o relatório foi fechado pelo ECF //
         OldTimeOut := TimeOut;
         TimeOut    := max(TimeOut,5);  // Tenta ler o Estado por 5 seg ou mais
         Est        := estDesconhecido;
         try
           Est := Estado;              // Lendo o estado do ECF

           if Est = estLivre then
           begin
             // Está Livre, provavelmente foi fechado por longo tempo de
             // impressao... (O ECF é obrigado a fechar o Gerencial após 2
             // minutos de Impressão). Vamos abrir um Novo Gerencial e Tentar
             // novamente
             AbreRelatorioGerencial(fsIndiceGerencial);
             fsECF.LinhaRelatorioGerencial( Texto, IndiceBMP );
           end ;
         finally
           TimeOut := OldTimeOut;

           if Est <> estLivre then
              raise EACBrECFErro.Create( ACBrStrToAnsi(Erro) );

         end ;
       end ;
     end ;
  end ;

Entretanto, para que esse método seja usado, é necessário que: (ACBrECF1.MaxLinhasBuffer > 0)

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Moderadores
Postado

Sim eu vi essa implementação e fiz debugando com a epson tm81f

mas o problema não é o tempo em si mas sim a quantidade de linhas, dai ele vai as 400 e depois dá o erro na tela pede novamente se quer tentar sim ou não, dai ele começa novamente vai até a linha 400 dá o erro e vai novamente! e fica nesse loop

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado

Daniel, o problema está no seguinte, a rotina trabalha com a hipótese que o ECF fechará o Vinculado ou Gerencial ao agingir o limite de linhas, no entanto não ocorre o fechamento automático, o ECF apenas notifica que o limite foi atingido e o cupom continua aberto. Talvez isso esteja fazendo com que a rotina não funcione.

  • Curtir 1
  • Fundadores
Postado

Faz sentido... a rotina procura pelo Estado Livre do ECF... Talvez seja capturar (try/except)o erro específico na classe do Fabricante, e solicitar o fechamento do relatório, se for o caso...
Você tem algum log, onde o problema ocorre ? com o Log eu conseguiria ver o erro específico e efetuar os ajustes nos fontes...

Ahh.. notei que o Log já estava no inicio do tópico... por favor teste com essa Unit em anexo

ACBrECFEpson.pas

  • Curtir 2
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Postado

Olá Daniel, me mostraram que a Epson estava aqui sim. Não resisti e efetuei o teste hoje mesmo. BINGO. Teste realizado com sucesso.

O problema está solucionado com a Unit enviada.

Parabéns pelo esforço e muitíssimo obrigado.

Forte abraço.

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