Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia Daniel!

Testei novamente e aparentemente o resultado da CMC7 só não foi retornado pela função LeituraCMC7, pois observei no log que você colocou e nele tem o retorno.

A função continua retornando o resultado do comando 24 bem sucedido.

Segue anexo pra você dar uma analisada.

Acho que está mais perto =)

Att.

acbrlog.txt

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

  • Fundadores
Postado

Humm.. realmente agora que vi... mudei o código para ler a resposta mas não tratei o retorno lido...

Por favor tente a seguinte alteração:

function TACBrECFSwedaSTX.LeituraCMC7: AnsiString;
var
OldTimeOut: Integer;
begin
Result := EnviaComando('24|1|0|1000');

{ Leitura do CMC7 deve retornar mais dados }
OldTimeOut := TimeOut;
try
TimeOut := max(OldTimeOut,5); // Espere mais 5 segundos...
GravaLog( ' Aguardando Resposta CMC7');
LeResposta;

fpRespostaComando := fsRespostasComando ; // Respostas Acumuladas
GravaLog( ' Retorno Completo: '+fpRespostaComando );
{ Limpando de "fpRespostaComando" os Status não solicitados }
fpRespostaComando := AjustaRetorno( fpRespostaComando );
GravaLog( ' Retorno Tratado: '+fpRespostaComando );

Result := copy(fpRespostaComando,17,34); // Verificar
finally
TimeOut := OldTimeOut;
end;
end;[/code]

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

Boa tarde Daniel!

Agora sim \o/

Fiz uns ajustes:

- Aumentei pra 10 segundos o timeout da espera pelo cmc7, pois no modelo ST2000, essa leitura é mais lentinha, e estava retornando o erro que a ecf não estava respondendo durante a leitura.

- Ajustei ali o retorno pra pegar exatamente o cmc7

function TACBrECFSwedaSTX.LeituraCMC7: AnsiString;

var

   OldTimeOut: Integer;

begin

   Result := EnviaComando('24|1|0|1000');


   { Leitura do CMC7 deve retornar mais dados }

   OldTimeOut := TimeOut;

   try

      TimeOut := max(OldTimeOut,10);  // Espere mais 10 segundos...

      GravaLog( '         Aguardando Resposta CMC7');

      LeResposta;


      fpRespostaComando := fsRespostasComando ;   // Respostas Acumuladas

      GravaLog( '         Retorno Completo: '+fpRespostaComando );

      { Limpando de "fpRespostaComando" os Status não solicitados }

      fpRespostaComando := AjustaRetorno( fpRespostaComando  );

      GravaLog( '         Retorno Tratado: '+fpRespostaComando );


      Result := copy(fpRespostaComando,35,36);  // Verificar

   finally

     TimeOut := OldTimeOut;

   end;

end;

Bom acho que é isso.

Agora posso mudar tudo pra ecfSwedaSTX.

Muito obrigado mais uma vez, pela atenção e pela solução Daniel!

Grande abraço!

Att.

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

  • 2 meses depois ...
Postado

Onde posso baixar o emulador desta elgin com leitura de cmc7 e impressão dos cheques para eu implementar no meu sistema? estou precisando disso urgente.

Obrigado.

  • 2 semanas depois ...
Postado

Boa tarde amigos do fórum!

Obrigado pela resposta Daniel, em todo o caso consegui uma ELGIN ZPM/2ECF LOGGER com impressão de cheques.

Porém fui testar com o ACBr e não funciona :o !

Validei a classe do ACBrECFFiscNET, e na linha da impressão de cheque está comentado.

{ Não implementado pois NAO encontrei uma tabela com as cordenadas de

impressão para cada Banco }

Gostaria de estar implementando, porém não sei por onde começar, Daniel vc tem idéia do que posso fazer? Alguma dica?

Vlw.

Postado

Olá Daniel, será que tem como me ajudar, dar alguma dicas de como programar no Acbr?

Eu encontrei o arquivo CHEQUES.ini, que contém todas as posições dos bancos nos documentos da ELGIN.

Isso já ajudaria o desenvolvimento?

Vlw.

  • 2 anos depois...
Postado

Bom dia pessoal!

Fiz atualização para o trunk2, e efetuando testes percebi que a leitura da CMC7, a qual este tópico trata, e que juntamente como Daniel conseguimos ajustar para funcionar, deixou de funcionar.

Analisando o código do método, notei que o mesmo foi refatorado.

Analisando também o log gerado no ECFTeste, percebi que o comando de leitura é enviado, e que a impressora retorna corretamente o CMC7, só o método aparentemente fica aguardando por alguma resposta, e gera uma exeção um timeout.

Ajustei os timetous pra mais e para menos e nada mudou.

Segue anexo o log para análise.

 

acbrlog.txt

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

Postado

Funcionou Daniel.

Testado nos modelos ST1000, ST2000 e ST2500.

Também testei a impressão de cheques e funcionou perfeitamente. 

Mencionei a impressão pois vi que tem um comentário no fonte da classe, no método de impressão, que diz que não foi testado por falta do equipamento.

Agora foi :)

Obrigado mais uma vez!

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

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