Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde.

Nesse método caso tenha um intervalo nos índices das formas de pagamento, esse código não funciona, pois ele para o while.

Original:

              if (pos('090C',E.Message) > 0) then
                 Break
              else
                 raise ;

Alteração proposta:

              if pos('090C',E.Message) = 0 then
                 raise ;
 

Segue em anexo arquivo alterado com essa correção.

ACBrECFEpson.pas

  • Curtir 1
  • Fundadores
Postado

Quando implementei tinha em mente a otimização de velocidade... (não fazia sentido ler posições vazias).... mas realmente traz esse problema...

apliquei a modificação no SVN

Obrigado...

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.

  • Fundadores
Postado

Interessante.. você usou o comando 09 01 para ler o numero de formas de pagamento cadastradas...

Mas se pularmos um índice (uma sequencia), ele retornará o número de Formas de Pagamento cadastrados, ou o último índice da Forma de Pagamento cadastrada ?

  • Curtir 1
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 (editado)

Funciona da seguinte forma:

01 - Dinheiro

02 - Cheque

04 - Cartão.

O comando 0901, vai retornar 3 formas de pagamento, eu faço o loop levando em consideração esse número, porém o índice no caso do cartão, continuará retornando o 04.

Editado por Luiz Fernando
Postado (editado)

Irá ler, pois incremento a variável de contagem do while, somente quando der certo a leitura da forma de pagamento.

Caso der erro irá cair no except com a mesma verificação que ele fazia anteriormente.

Porém, caso haja um índice vazio, ira ser feita uma leitura desnecessária, mas não vai fazer as 20 necessárias anteriormente.

Editado por Luiz Fernando
Postado (editado)

Daniel, fiz um arquivo de log demonstrando o resultado da rotina implementada.

Observe que a leitura do índice 4 retorna o erro de tipo de pagamento não definido, porém dá sequência para o 5 e 6 no meu caso, sendo que essa impressora possui somente 5 formas de pagamento.

 

log.txt

Editado por Luiz Fernando
  • Curtir 1
  • Este tópico foi criado há 3193 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.