Ir para conteúdo
  • Cadastre-se

dev botao

Erro Relatório Gerencial Mp 4200 Thfi


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 3527 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Senhores bom dia, andei pesquisando aqui no fórum sobre um problema atípico com relação a impressão de relatórios gerenciais na impressora fiscal da Bematech MP4200 TH FI, quando usa o comando PulaLinhas() ou LinhaRelatorioGerencial('') -> com vazio a ECF retorna o erro:

 

----------------- ERRO -----------------
Erro retornado pela Impressora: BEMATECH - MP-4200 TH FI
 
Categoria: 7-Erro em Relatório Gerencial ou CCD
Motivo: 12-Comando enviado não pode ser executado dentro de CCD
----------------------------------------
 
percebi o seguinte, para que possa pular uma linha em branco consegui efetuar a ação com sucesso utilizando o comando LinhaRelatorioGerencial('         ') com 9 espaços em branco, fazendo dessa forma funcionou, porém alguns comandos utilizados pelo AcbrECF não funcionam por exemplo um que utilizo muito  é:
PafMF_RelIdentificacaoPafECF(IdentPaf, 0); gerar identificação do PAF-ECF, ja olhei no fórum o post:
 
 
porém sem sucesso, os testes que efetutei foram no ECFTeste, meu fonte esta atualizado no revision: 8656 compilei testei novamente porém sem sucesso, segue em anexo o log gerado pelo ECFTeste, abri um gerencial, mandei imprimir três linhas de teste, depois tentei pular três linhas utilizando o comando PulaLinhas(3).
Peço uma ajuda aos colegas, caso alguém já tenha encontrado uma solução para o problema, desde já agradeço pela atenção!
 
OBS: Com o Emulador tudo funcionando 100%, mas como sempre no equipamento físico nunca é a mesma coisa.

acbrlog.txt

acbrlog.txt

Postado

Olá Daniel, OK vamos la, todos os passos foram feitos no ECFTeste:

 

1 - utilizei a função: ACBrECF1.AbreRelatorioGerencial(StrToIntDef(IndiceStr, 0)) ; //tudo ok abriu o relatório sem problemas

2 - função ACBrECF1.LinhaRelatorioGerencial( Linha, 1 ); //imprimi 3 linhas tudo ok também sem problemas

3 - ACBrECF1.PulaLinhas( StrToIntDef(Linhas,0) ) ; // passando 3 para variável linhas ai que vem o problema quando tenta executar esta função que ocorre o erro como mostra no log que enviei em anexo no primeiro post.:

 

----------------- ERRO -----------------
Erro retornado pela Impressora: BEMATECH - MP-4200 TH FI
 
Categoria: 7-Erro em Relatório Gerencial ou CCD
Motivo: 12-Comando enviado não pode ser executado dentro de CCD
----------------------------------------
 
mas segue em anexo o log com este novo teste exatamente como descrevi acima, no primeiro post comentei que em outras rotinas do ACbrECF também ocorre o mesmo erro como identificação do PAF-ECF mas acredito que descobrindo a solução para este podemos verificar os demais.

 

acbrlog.txt

  • Consultores
Postado

Boa tarde,

Fiz o procedimento descrito, utilizando as mesmas informações:
- Abre Relatório Gerencial;
- Imprime Linha Relatório : "isso é um teste de relatório";
- Pular Linhas: 3;
- Fecha Relatório / Vinculado.
 

Não houve nenhum erro e o relatório foi impresso corretamente.
Anexei o cupom ao caso.

RelatorioGerencial.pdf

Consultor SAC ACBr

Elias César Vieira
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Assine o
SAC

 
Postado

Elias, Um detalhe importante que percebi no cupom que você me mandou em anexo é a versão do SB na sua ECf está 01.00.00

já na do cliente está 01.00.02, será que não pode ser isso ? problemas com versão de software básico ?

coloquei o rodapé de uma leitura x em anexo...

post-8233-0-96175400-1427749292_thumb.jp

  • Fundadores
Postado

Sim é possível que esse seja o problema... Vc comenta que para funcionar, é preciso enviar 9 espaços para a Linha do Gerencial, certo ?

 

Notei algo semelhante no ECF 09/09 da Epson...  por favor teste a seguinte modificação nos seus fontes...

procedure TACBrECFEscECF.PulaLinhas(NumLinhas: Integer);
var
  Linha: String;
begin
  if NumLinhas = 0 then
     NumLinhas := LinhasEntreCupons ;

  if IsEpson or IsBematech then
  begin
    Linha := DupeString(' '+#10, NumLinhas ) ;
    LinhaRelatorioGerencial( Linha ) ;
    exit;
  end;

  inherited PulaLinhas(NumLinhas);
end;
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 pela atenção, efetuei a modificação aqui no arquivo AcbrECFEscECF.PAS conforme orientação acima, por ter acrescentado Bematech ele caiu dentro do IF porém o mesmo problema ainda continua.....

  • Fundadores
Postado

Muito bem... teste a sua teoria... modifique a rotina de acordo com o que você postou... Tente mandar os 9 ou mais espaços a cada linha

procedure TACBrECFEscECF.PulaLinhas(NumLinhas: Integer);
var
  Linha: String;
begin
  if NumLinhas = 0 then
     NumLinhas := LinhasEntreCupons ;

  if IsEpson or IsBematech then
  begin
    Linha := DupeString( StringOfChar(' ',10)+#10, NumLinhas ) ;
    LinhaRelatorioGerencial( Linha ) ;
    exit;
  end;

  inherited PulaLinhas(NumLinhas);
end;

 

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 fiz a modificação de acordo com minha teoria como você montou o bloco de código ai, funcionou 100%, porém para tirar identificação do PAF-ECF, Parâmetros de Configuração não funcionou, para funcionar essas duas funções alterei o fonte do AcbrECF.pas, estou enviando o arquivo em anexo, as função modificadas estão nas linhas:

6445: TACBrECF.PafMF_RelIdentificacaoPafECF

6535: TACBrECF.PafMF_RelParametrosConfiguracao

6563: TACBrECF.PafMF_RelParametrosConfiguracao

 
em todas essas funções  onde esta Relatorio.Add('');  alterei para Relatorio.Add(StringOfChar(' ',10)); compilei testei novamente funcionou 100%, não sei se é a melhor forma para ajustar junto a esta ECF, mas o arquivo segue em anexo com a idéia.
 

 

ACBrECF.pas

ACBrECF.pas

Postado

Assim Daniel compreendido, vou testar amanhã pois fizeram um grande favor aqui de tirar Z bloquear a ECF, amanhã passo um feedback, até o presente momento grato pela atenção.

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