Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia Pessoal!

Estou fazendo as verificações quanto as novas impressoras com módulo integrado com o Sefaz.

Bom, após vários testes, constatei apenas um problema que está relacionado com a impressão de relatório gerencial.

Verificando os fontes, pude perceber que a constante  "cEscECFMaxBuffer" no arquivo ACBrECFEscECF.pas  está com o valor 4096, e verificando a procedure abaixo onde destaquei em vermelho, percebi que a função está tentando enviar 4096 caracteres(no caso meu relatório tem mais do que isto) e acredito que o comando 9  em questão não suporta tantos caracteres.

Corrigi o problema alterando o valor da constante para 500, porém, não sei se esta é a forma correta.

Se puderem verificar, fico no aguardo! 

==================================================================================================

procedure TACBrECFEscECF.LinhaRelatorioGerencial(Linha: AnsiString;
   IndiceBMP: Integer);
var
  P, Espera: Integer;
  Buffer   : AnsiString ;
begin
  Linha := AjustaLinhas( Linha, Colunas, 0, (IsEpson or IsBematech) );  { Formata as Linhas de acordo com "Coluna" }

  while Length( Linha ) > 0 do
  begin
     P := Length( Linha ) ;
     if P > cEscECFMaxBuffer then    { Acha o fim de Linha mais próximo do limite máximo }
        P := PosLast(LF, LeftStr(Linha,cEscECFMaxBuffer) ) ;

     if P = 0 then
        P := Colunas ;

     Buffer := copy( Linha, 1, P)  ;
     Espera := Trunc( CountStr( Buffer, LF ) / 4) ;

     EscECFComando.CMD := 9                                ;
     EscECFComando.TimeOut := Espera ;
     EscECFComando.AddParamString(Buffer);
     EnviaComando;

==================================================================================================

Att.

Apenas para complementar, verifiquei no comando de imprimir o texto da epson, o máximo permitido de caracteres é de 492.

Comando ImprimeTexto

Descrição: Imprime texto em um documento.

Observações: Este comando é usado para impressão de texto livre em Relatórios Gerenciais, Comprovates de Crédito ou Débito, Cupons Fiscais, etc.

Retornos Parâmetros 82 Variavel: TextoLivre

TipoDado: string Tamanho Máximo: 492

Obrigatório Descricao: Conteúdo do texto livre.Podem ser usados caracteres modificadores de impressão para gerar impressão negrito, expandido, código de barras, etc.

Att.

Postado

Exatamente Daniel!

O problema já ocorre se você usar o ECFTeste na aba das tags de impressão.

Tanto faz os parâmetros, apenas clicando no botão enviar linha gerencial(ignorando as tags ou não) ele abre o comprovante e logo após apresenta um erro.

Vou colocar o log aqui para você ver, mas após eu alterar aquela constante que mencionei acima para 492 ou 500, funciona normal!

Att.

acbrlog.txt

AntesEnviar.png

DepoisEnviar.png

  • Fundadores
Postado

    Apenas para complementar, verifiquei no comando de imprimir o texto da epson, o máximo permitido de caracteres é de 492.

Comando ImprimeTexto

Descrição: Imprime texto em um documento.

Observações: Este comando é usado para impressão de texto livre em Relatórios Gerenciais, Comprovates de Crédito ou Débito, Cupons Fiscais, etc.

Retornos Parâmetros 82 Variavel: TextoLivre

TipoDado: string Tamanho Máximo: 492

Obrigatório Descricao: Conteúdo do texto livre.Podem ser usados caracteres modificadores de impressão para gerar impressão negrito, expandido, código de barras, etc.

Att.

Onde você obteve esse valor de 492 ?  Lembre-se que o protocolo EscEcf é completamente diferente do protocolo da Epson....

Mesmo assim, acho que o valor da constante está errado... a legislação fala que o limite de envio é o Tamanho do "Buffer de Comando".. e pesquisando na mesma, vi que o valor máximo para o Buffer de Commando é 1024

Poderia por favor testar com o valor 1024 ?

 

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

Bom dia Daniel!

 

Posso sim, já farei o teste aqui e te retorno.

Quanto ao valor, peguei em um manual online que encontrei, apesar de não ser exatamente o mesmo modelo...

Obrigado pelo retorno!

É isso aí Daniel!

Com 1024 funcionou normalmente também. Testei também com 1048 e já deu erro, então acredito que o Max. Buffer seja mesmo 1024!

Podes me dizer onde conseguisse a informação dos comandos ESC para a impressora?

Assim, caso encontre mais algum "problema" desta natureza, já posso testar da maneira correta.

Att. 

  • Fundadores
Postado

Na Pasta "TOOLS" do nosso SVN tem um PDF com a legislação...

https://svn.code.sf.net/p/acbr/code/tools/EscECF/

 

Ou então o próprio site do CONFAZ

http://www1.fazenda.gov.br/confaz/confaz/Atos/Atos_Cotepe/2009/AC016_09.htm

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.

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