Ir para conteúdo
  • Cadastre-se

dev botao

Certificação Pay&Go Passo 26


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

Recommended Posts

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.

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...
  • Consultores

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.
Link para o comentário
Compartilhar em outros sites

  • Consultores

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.
Link para o comentário
Compartilhar em outros sites

  • Fundadores

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.

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...
  • Moderadores

Boa tarde

o problema está no modelo da ECF

ela limita a 400 linhas de gerencial e ele envia 500 linhas!

fiz o debug e achei esse erro, será necessário entrar em contato com a NTK pra ver o que pode ser feito

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Mas nos fontes do componente... ele captura o erro, que é causado pelo "estouro" de linhas no Relatório, e automaticamente abre outro Relatório 

 

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.

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

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.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

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_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Juliomar,

A situação é a mesma... o ECF irá fechar o Vinculado ou Gerencial, quando atingir o limite máximo de linhas... e o erro será tratado no Exception

  • Curtir 1
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.

Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

  • Fundadores

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.

Link para o comentário
Compartilhar em outros sites

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