Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde pessoal,

estou utilizando a função

ACBrECF1.DataHoraSB 

e ele está me retornando 30/12/1899. Alguém sabe pq isso ocorre??

Obs.: estou utilizando impressora bematech MP-2100 TH FI.

  • Consultores
Postado

Não está usando o emulador?

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

é uma impressora bematech MP 2100 TH FI, porém não está lacrada... estou utilizando ela apenas para teste... no lugar que eu comprei, ela foi registrada apenas para testes... mas é uma impressora normal, porém sem lacrar...

Postado

acabei de fazer um teste no emulador da Epson, e no entanto ele me retorna uma data válida, 03/06/2011. Mas na impressora fiscal fisica não retorna nada.

Ah, outra coisa, no emulador retornou a data, mas e a hora?????

  • Fundadores
Postado

Você está falando de Epson ou Bematech ??

A classe do ACBr, o protocolo e Sw.Básico do ECFs é completamente diferente... O que funciona para um pode não ser o mesmo para o outro...

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

eu digo os dois...

no simulador da Epson me retornou uma data... na impressora fiscal fisica Bematech me retornou em branco... antes, quando usava a dll da bematech com a impressora fisica Bematech, não dava esse erro de retornar a data em branco......

  • Consultores
Postado

Flavio,

O que o Daniel quis dizer é que não adianta testar uma funcionalidade do ACBrECF de uma impressora em outra.

Teste o uso desse ECF específico que está dando problema com a dll.

Se não funcionar nem com a DLL da Bematech, o problema deve ser no ECF.

Mas se funcionar, anexe aqui o log do ACBrECF como o Régys pediu.

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

Bom dia pessoal,

não sei o que fiz, mas a função agora me retornou a data do SB rsrs... mas agora, o problema está na Hora da gravação... me retornou somente a data no formato DD/MM/AAAA...

  • 8 meses depois ...
Postado

Acho que não é mais necessário, só que eu passei por este mesmo problema com impressora bematech e foi só emitir a Redução Z

Minha impressora também é só para testes.

Espero ter ajudado alguém com o mesmo problema de DataHoraSB e ou até mesmo contribuído para a solução do bug.

Postado (editado)

  Olá para todos,

  Aqui na empresa em que trabalho adquirimos recentemente uma impressora Epson TM-T81 FBIII  e o problema da hora do software basico ficar zerado eu consegui resolver copiando a mesma codificação da impressora bematech,

 abaixo segue o codigo para que seja feito a modificação no repositório, no meu teste funcionou perfeitamente.

function TACBrECFEpson.GetDataHoraSB: TDateTime;
{Var
  DtStr, HrStr : AnsiString ; }
Var Linha, LinhaVer, DtHrStr : AnsiString ;
    Linhas : TStringList;
    I, CRZ :Integer;
    AchouBlocoSB : Boolean ;
begin
 { EpsonComando.Comando := '0402' ;
  EnviaComando ;

  DtStr := EpsonResposta.Params[8] ;
  HrStr := '000000' ;
  { Atualmente não tem informações de como pegar a hora por comando direto,
    tem que utilizar a mesma forma que a Bemateh realizar a partir da LMF.
    A ser implementado.... }

  {Result := EncodeDateTime( StrToInt(copy(DtStr, 5,4)),   // Ano
                            StrToInt(copy(DtStr, 3,2)),   // Mes
                            StrToInt(copy(DtStr, 1,2)),   // Dia
                            StrToInt(copy(HrStr, 1,2)),   // Hora
                            StrToInt(copy(HrStr, 3,2)),   // Min
                            StrToInt(copy(HrStr, 5,2)),   // Seg
                            0 ); }
  Result := 0.0;

  // verificar se a redução Z está pendente e não fazer se estiver
  // porque acontecerá erro, conforme consulta ao atendimento da bematech
  if Estado in [estLivre] then
  begin
    Linhas := TStringList.Create;

    try
      CRZ := StrToIntDef(NumCRZ, 1) ;
      LeituraMemoriaFiscalSerial(CRZ, CRZ, Linhas);

      I := 0 ;
      AchouBlocoSB := False;
      while (not AchouBlocoSB) and (I < Linhas.Count) do
      begin
         Linha := Linhas[I] ;
         AchouBlocoSB := (pos('SOFTWARE B', Linha ) > 0) ;
         Inc( I ) ;
      end ;

      Linha    := '';
      LinhaVer := '';
      while AchouBlocoSB and (I < Linhas.Count) and (Linha = LinhaVer) do
      begin
         Linha := Trim(Linhas[I]) ;
         if (Linha <> '') then
         begin
            if ( StrIsNumber( copy(Linha,1,2) ) and ( copy(Linha,3,1) = '.' ) and
                 StrIsNumber( copy(Linha,4,2) ) and ( copy(Linha,6,1) = '.' ) and
                 StrIsNumber( copy(Linha,7,2) ) ) then
               LinhaVer := Linha;
         end ;

         Inc( I ) ;
      end ;

      if LinhaVer <> '' then
      begin
        // 01.00.01                    25/06/2009 21:07:40
        I := pos('/', LinhaVer ) ;
        DtHrStr := copy(LinhaVer, I-2, 10 ) ;
        I := pos(':', LinhaVer ) ;
        DtHrStr := DtHrStr + ' ' + copy(LinhaVer, I-2, 8 ) ;

        Result := StringToDateTime( DtHrStr, 'dd/mm/yyyy hh:nn:ss' ) ;
      end;
    finally
      Linhas.Free ;
    end ;
  end;
end;
Editado por Anizair Lopes
  • Fundadores
Postado

Notei que essa rotina já existia em outras 2 classes... portanto fiz um Refactoring

 

-- ACBrECF -- [*] Refactoring em GetDataHoraSB, efetando os modelos: ecfBematech, ecfFiscNET,
    ecfEpson. Usando uma única rotina para captura da Data e Hora do Sw.Básico
    através da Captura de informações da Leitura da Memoria Fiscal.   (por: DSA)

 

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.

  • 2 anos depois...
  • Fundadores
Postado
-- Ativando a porta: COM7
-- 10:52:00:203 DataHoraSB
                TX -> [STX][ENQ][NUL][FS]#[WAK]P[NUL]
   10:52:00:335 RX <- ACK = 6 Falha: 0
   10:52:00:435 RX <- $[NUL][NUL][NUL][NUL]
-- Desativando a porta: COM7
-- Ativando a porta: COM7

não há nenhum travamento no Log... e o comando de DataHoraSB obteve resposta..

 

 

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á 3285 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.