Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde, estou usando o ACBrECF, e faço um tratamento separado para as exceptions do ACBr em relação às outras utilizando o on E:EACBrECFErro. Mas percebi que em algumas funções na unit do ACBrECF, ao invés de ter um raise EACBrECFErro.Create, tem um raise Exception.Create.

Então aqui está minha dúvida/sugestão: teria como mudar todos para EACBrECFErro? Pois assim daria para diferenciar melhor os erros gerados pela impressora dos gerados pelo banco.

Guilherme Przewodowski

  • Consultores
Postado

Você consegue localizar e alistar onde no código isso está acontecendo?

Eu poderia verificar nesse caso.

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

Realmente o ACBrECF precisará de uma classe de Exceção específica para o Erro sem Papel...

Em quanto isso não existe... use o evento de Application.OnException e verifique se o erro é do tipo básico de exceptions gerado pelo ACBrECF, e se na mensagem do Erro existe a palavra "PAPEL"... Exemplo:


if (E is EACBrECFError) and (pos('PAPEL', UpperCase(E.Message) ) > 0) then
ShowMessage(' ECF SEM PAPEL');
[/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

Você consegue localizar e alistar onde no código isso está acontecendo?

Eu poderia verificar nesse caso.

Elton, um exemplo está na função EfetuaPagamento:

if FPG = nil then

     raise Exception.Create(Format(ACBrStr(cACBrECFAchaFPGIndiceException), [ CodFormaPagto ])) ;


  if ImprimeVinculado and (not FPG.PermiteVinculado) then

     raise Exception.Create(Format(ACBrStr(cACBrECFFPGPermiteVinculadoException), [ CodFormaPagto ])) ;
Se pesquisar por "raise Exception" nessa unit, vai achar vários. Ou se quiser que eu liste todas, é só falar.
Realmente o ACBrECF precisará de uma classe de Exceção específica para o Erro sem Papel... Em quanto isso não existe... use o evento de Application.OnException e verifique se o erro é do tipo básico de exceptions gerado pelo ACBrECF, e se na mensagem do Erro existe a palavra "PAPEL"... Exemplo:

  if (E is EACBrECFError) and (pos('PAPEL', UpperCase(E.Message) ) > 0) then

     ShowMessage(' ECF SEM PAPEL');

Daniel, é uma boa ideia isso, mas ainda não é o que eu disse. O que acontece é que algumas exceptions não são geradas como EACBrECFErro, mas como Exception.

Obrigado!

Guilherme Przewodowski.

Guilherme Przewodowski

  • Fundadores
Postado

Mas com certeza todos os erros de Sem papel serão deste tipo...

Alias, não precisa nem verificar o tipo da Exceção afinal, quantos erros vem com a String "PAPEL" neles ??

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

Então, mas o meu problema não foi com o papel. Tanto que eu percebi isso na hora de efetuar o pagamento do cupom.

Guilherme Przewodowski

  • Consultores
Postado

Daniel, não sei se percebeu, mas o que o Guilherme está dizendo é que o código está assim:

if FPG = nil then
raise Exception.Create(Format(ACBrStr(cACBrECFAchaFPGIndiceException), [ CodFormaPagto ])) ;[/code] Mas na verdade, poderia estar assim:
[code]if FPG = nil then
raise EACBrECFErro.Create(Format(ACBrStr(cACBrECFAchaFPGIndiceException), [ CodFormaPagto ])) ;

Ou seja, criando uma exception típica da classe TACBrECF.

Acho que não tem nenhum problema, pelo contrário. Conforme o Nick Hodges disse há algumas semanas, é bom que a classe tenha sua própria exception. Isso também facilita saber onde foi gerado o erro.

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

Se houve Exception quando você enviou o comando ao ACBrECF... qualquer exception que seja, o erro é dessa chamada... não compreendo a dificuldade em tratar isso dentro de um bloco Try/Except

A correção proposta é boa... e deve ser aplicada (agradecemos se puder ajudar)... o que quero dizer é que do jeito que está, é perfeitamente possível trabalhar...

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.

  • Consultores
Postado

Se pesquisar por "raise Exception" nessa unit, vai achar vários. Ou se quiser que eu liste todas, é só falar.

Na verdade, se você pudesse corrigir e anexar o arquivo alterado aqui para que eu possa analisar seria de grande ajuda.

É que estou meio apertado esses dias. :(

[]'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.
  • 3 semanas depois ...
  • Consultores
Postado

Também adicionei parte dessas sugestões na revisão 3427 para as Classes ACBrECF, ACBrECFClass e ACBrECFBematech.

Vou tentar fazer para as outras impressoras também.

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

Pronto, aqui pelos meus testes está tudo bem.

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

Não testei ainda, mas pelo que eu vi é aquilo mesmo.

Me desculpe por não mandar o arquivo alterado, é que eu tambem estava (e ainda estou) muito enrolado aqui.

Valeu!

Guilherme Przewodowski

  • Consultores
Postado

Sem problemas Guilherme.

Na verdade eu já tinha vontade de fazer isso há algum tempo. Mas infelizmente, essa a correria é bem generalizada.

[]'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.
  • Este tópico foi criado há 4616 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.