Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

consultoria_sticker.png

Conteúdo para desenvolvedores
 ao vivo de terça a quinta!
Saiba mais

dev.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


Saiba mais

beneficios.png

Corte De Papel Na Bematech Mp-4000 Th Fi


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

Recommended Posts

Bom dia pessoal, estou com uma situação estranha aqui. Estou utilizando o seguinte source para fazer impressão de várias vias de um determinado relatório gerencial implementado em nosso PDV. Segue:

//Obtêm o índice do relatório gerencial
indiceRG := ecf.BuscarIndiceRG(10);
//Abre o relatório gerencial
ecf.AcbrEcf.AbreRelatorioGerencial(indiceRG);
(...)
  if max_vias = 1 then
      begin
        imprimirREAux;
      end else begin
        for j := 1 to userVias do begin
          if ecf.AguardarRespostaEcf then
          begin
            imprimirREAux;
          end;
          //Se não for a última via corta o papel
          if (j <> userVias) then
          begin
            if ecf.AguardarRespostaEcf then
            begin
              ecf.AcbrEcf.CortaPapel(true);
              Sleep(150); //Fórum da ACBr aconselhou um pequeno time para a guilhotina
            end;
          end;
        end;
      end;
(...)
 //----
  procedure imprimirREAux;
  begin
    //Imprime as linhas no relatório gerencial
    ecf.AcbrEcf.LinhaRelatorioGerencial(rel.Text);
    //Adiciona o espaço em branco no final
    if ((ckAdicionarEspacoFinal.Visible)and(ckAdicionarEspacoFinal.Checked)) then
    begin
      ecf.AcbrEcf.PulaLinhas(max_linhas);
      if ecf.AguardarRespostaEcf then
      begin
        ecf.AcbrEcf.LinhaRelatorioGerencial('</linha_simples>');
      end;
    end;
    Inc(aux);
  end;
  //----

    No arquivo de log do ECF eu tenho:

-- 18:11:46:993
                TX -> [STX][4][NUL][FS][20]0[NUL]
   18:11:48:188 RX <- @[NUL][NUL][NUL]
-- 18:11:48:196 LinhaRelatorioGerencial( "[CR][LF]</linha_dupla>[CR][LF] (...)", 0 )
                TX -> [STX]B[STX][FS][20][LF]================================================[LF]     [ESC][14]ENDERE[128]O DE ENTREGA[20][LF]       REF. AO CUPOM: 014080 - VIA: 01/02       [LF]================================================[LF] (...)[213]y
   18:11:49:581 RX <- @[NUL][NUL][NUL]
-- 18:11:49:581
                TX -> [STX]5[NUL][FS][20]------------------------------------------------[LF][170][BS]
   18:11:49:758 RX <- @[NUL][NUL][NUL]
-- 18:11:49:758 PulaLinhas( 2 )
                TX -> [STX][ACK][NUL][FS][20][LF][LF]D[NUL]
   18:11:49:911 RX <- @[NUL][NUL][NUL]
-- 18:11:49:911 LinhaRelatorioGerencial( "</linha_simples>", 0 )
                TX -> [STX]5[NUL][FS][20]------------------------------------------------[LF][170][BS]
   18:11:50:088 RX <- @[NUL][NUL][NUL]
-- 18:11:54:088 CortaPapel
                TX -> [STX][ENQ][NUL][FS]#[WAK]P[NUL]
   18:11:54:211 RX <- [4]@[NUL][NUL][NUL]
-- 18:11:54:211
                TX -> [STX][ENQ][NUL][FS]#A[128][NUL]
   18:11:54:334 RX <- [4]@[NUL][NUL][NUL]

     A princípio não detectei nenhum problema, mas a Bematech está cortando o papel ANTES de pular as linhas em branco. Já tentei de tudo, aumentar valor de Sleep() entre os comandos, tentando fazer com que a sequência fosse respeitada mas não obtive sucesso. O mais estranho é que quando foi implementado funcionava normalmente.

     Gostaria da opinião de vocês. Desde já agradeço.

Link to post
Share on other sites

ACBrECF.MaxLinhasBuffer := 0;

 

depois retorna o valor depois poste o resultado

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to post
Share on other sites
  • Fundadores

Não entendi porque você usa algo como:

if ecf.AguardarRespostaEcf ...

 

O problema pode estar no seu código... para tirar a "prova dos nove", por favor use o ECFTeste e tente reproduzir o problema...

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 to post
Share on other sites

Ah sim, o ecf.AguardarRespostaEcf seria:

function TEcf.AguardarRespostaEcf : Boolean ;
var
  i : Integer;
begin
  Result := False;
  try
    for i := 1 to 5 do
    begin
      if ((ecf.ACBrECF.AguardandoResposta) and (ecf.ACBrECF.AguardaImpressao)) then
      begin
         if Assigned(FormPDV) then
           FormPdv.eStatusEcf.Text := 'Aguardando resposta do ECF..';
        Sleep(100);
      end
      else
      begin
        Result := True;
        exit;
      end;
    end;
  finally
    if Assigned(FormPDV) then
      FormPdv.eStatusEcf.Text := '';
  end;
end;
Link to post
Share on other sites

Juliomar, fiz o seguinte:

>> Source:
maxLBuffer := ecf.AcbrEcf.MaxLinhasBuffer;
ecf.AcbrEcf.MaxLinhasBuffer := 0;

>> Log do ACBr:

-- 10:56:37:630 
                TX -> [STX]5[NUL][FS][20]------------------------------------------------[LF][170][BS]
   10:56:37:807 RX <- @[NUL][NUL][NUL]
-- 10:56:37:807 PulaLinhas( 2 ) 
                TX -> [STX][ACK][NUL][FS][20][LF][LF]D[NUL]
   10:56:37:934 RX <- @[NUL][NUL][NUL]
-- 10:56:37:934 LinhaRelatorioGerencial( "</linha_simples>", 0 )
                TX -> [STX]5[NUL][FS][20]------------------------------------------------[LF][170][BS]
   10:56:38:111 RX <- @[NUL][NUL][NUL]
-- 10:56:38:111 CortaPapel
                TX -> [STX][ENQ][NUL][FS]#[WAK]P[NUL]
   10:56:38:235 RX <- [4]@[NUL][NUL][NUL]

    O problema persiste.

Edited by abraao895
Link to post
Share on other sites
  • Este tópico foi criado há 2827 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...