Ir para conteúdo
  • Cadastre-se

dev botao

Tratar quando tem erro no acbr.abrecupom


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

Recommended Posts

Estou começando a fazer um aplicativo de ecf com o acbr, estou fazendo um teste e usando o emulador da bematech, consegui conectar o emulador tudo normal, quando abro um cupom, gostaria de fazer um teste, se o acbr.abrecupom nao retornar nenhum erro, o sistema grava os valores no banco de dados.

Exemplo:

try

ACBrECF.AbreCupom(CPF, Cliente, Endereco);

finally

TbCupomCorpo.Open;

TbCupomCorpo.Append;

TbCupomCorpo.FieldByName('cpmcorpo_cpf').AsString := CPF;

TbCupomCorpo.FieldByName('cpmcorpo_cliente').AsString := Cliente;

........................

end;

mas se ocorrer um erro na hora que abre o cupom, a impressora retornar um erro de cupom já aberto ou não estar mais comunicando, como faço pra não deixar gravar um novo cupom no banco, pois deste modo acima, mostra o erro do acbr, como por exemplo um cupom já aberto, mas não para no erro, continua e grava no banco como se tivesse um novo cupom.

Como posso corrigir isso, reconhecer o erro que o acbr mostrou e não deixar gravar

Obrigado pela ajuda.

Link para o comentário
Compartilhar em outros sites

Eu uso try except.

try

ACBrECF.AbreCupom(CPF, Cliente, Endereco);

// grava dados

except

// trata

end;

Mas se quiser usar o try finally, consulte o estado da ecf antes de gravar para ver se o cupom foi realmente aberto.

No exemplo ECFTeste.exe que acompanha a instalação do ACBr mostra como verificar o estado da ECF.

De uma olhada no evento OnErrorAbreCupom também.

Att.

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Try ... finally deve ser usando somente em situações que você tem por obrigatoriedade fazer alguma coisa após o processamento entre o bloco, ele ocorrendo ou não.

O correto e utilizar o try...except e tratar as exceções, se o abrecupom levantar alguma exceção a exceção vai desviar o fluxo para o except e você trata isso o resto do processamento a partir do erro não acontece.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

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