Ir para conteúdo
  • Cadastre-se

dev botao

Problemas Com A Emissão De Redução Z T800F


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

Recommended Posts

Bom dia,

Estou tendo um problema com a emissão da redução Z pendente na impressora Epson T800F usando o protocolo ecfEscECF.

Quando envio o comando para emissão da redução Z utilizando o ECFTeste é apresentada a seguinte mensagem.

 

Erro retornado pela Impressora: EPSON - TM-T800F

Categoria: 16-Erro específico do Fabricante
Motivo: 3-Data em intervalo inválido.
#1/#26#0#0#1#0#0#23#29#029012015|2|000000038|190402||#155
- + - + - + - + - + - + - + - + - + - + - + -

 

Por favor, alguém pode me dar uma dica?

 

Obrigado

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Por favor tente com essa modificação....

  EscECFComando.CMD := 21;
  EscECFComando.AddParamInteger(0);  // Data
  EscECFComando.AddParamInteger(0);  // Hora
  EscECFComando.AddParamInteger(0); // Imprime no ECF
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, também deu erro...

 

Erro retornado pela Impressora: EPSON - TM-T800F

Categoria: 2-Erro em parâmetro do comando
Motivo: 1-Conteúdo de parâmetro inválido no comando.
#1k#26#0#0#1#0#0#23#29#029012015|2|000000038|190402||#215
- + - + - + - + - + - + - + - + - + - + - + -

Mas indo por este caminho, eu mudei aqui o seu comando enviando a string em branco e a redução Z saiu... Acredito que assim seria a melhor solução para o meu problema mesmo... Como não adianta mandar uma data eu comentei o código anterior e deixei assim:

//  if DataHora = 0 then  { Aparentemente a DataHora é obrigatória na EscECF }
//     DataHora := now ;

  EscECFComando.CMD := 21;
  EscECFComando.AddParamString('');  // Data
  EscECFComando.AddParamString('');  // Hora
  EscECFComando.AddParamInteger(0); // Imprime no ECF

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores
  • Solution

Por favor teste com a seguinte implementação:

procedure TACBrECFEscECF.ReducaoZ(DataHora : TDateTime) ;
begin
  if DataHora = 0 then  { Aparentemente a DataHora é obrigatória na EscECF }
     DataHora := now ;

  EscECFComando.CMD := 21;
  if DataHora = -1 then  { Sem Data e Hora }
   begin
     EscECFComando.AddParamString('');   // Sem Data
     EscECFComando.AddParamString('');   // Sem Hora
   end
  else
   begin
     EscECFComando.AddParamDateTime(DataHora, 'D' );
     EscECFComando.AddParamDateTime(DataHora, 'H' );
   end;

  EscECFComando.AddParamInteger(0); // Imprime no ECF

  try
     EnviaComando ;
     RespostasComando.Clear;
     SalvaRespostasMemoria(True);
  except
     on E : Exception do
     begin
        // Woraround para Epson, para Erro de data na Redução Z
        if IsEpson and (EscECFResposta.CAT = 16) and (EscECFResposta.RET.ECF = 3) then
         begin
           ReducaoZ(-1);
         end
        else if (pos('5-1',E.Message) <> 0) then    // Comando inválido para o documento atual.
         begin                                      //  Ficou algum Cupom aberto ?
           // Cancelando o Cupom em aberto
           EscECFComando.CMD := 31;
           EnviaComando;

           ReducaoZ(DataHora);
         end
        else
           raise ;
     end ;
  end ;
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.

Link para o comentário
Compartilhar em outros sites

  • Consultores

bom... enviei as modificações acima para o SVN.. parece ser um Workaround necessário

 

Daniel,

  O problema do now é que o horário do computador pode estar incorreto. Será que não seria melhor passar o horário do ECF?

[]'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

  • Este tópico foi criado há 3366 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.