Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa Tarde pessoal,

Pessoal seguinte, estou utilizando o acbrcmc7 e esta ocorrendo o seguinte, na primeira vez que ele analisa a string ele valida tudo certinho, se eu tentar ler uma segunda string ainda que seja a mesma que foi validada normalmente ele manda a mensagem cmc7 inválido. Eu tenho que fechar o sistema e abrir novamente para que ele possa ler e validar corretamente. Alguém já passou por alguma situação igual ou parecida ? Desde já agradeço a atenção.

  • 2 semanas depois ...
Postado

Bom dia Daniel,

Daniel fiz os teste com o exemplo e não consegui reproduzir o erro, analisando o meu projeto a unica coisa que tem de diferente é que após a leitura ele chama uma segunda tela com showmodal, para que o usuário termine o lançamento dos dados do cheque, quando essa tela é fechada a próximo leitura já não funciona mais. Fiz um debug, para verificar o componente e o que pude perceber é que o erro esta na validação do digito, a mesma string retorna valores diferentes na validação do digito. Ex. na primeira execução ele retorna um valor e o round aproxima pra 2 e depois na segunda vez com a mesma string o round traz 1 e aí gera o erro de CMC7 inválido.

Postado

Daniel boa tarde,

Daniel descobri qual o problema desse erro do CMC7, na verdade o erro não está no componente não, porém descobri algo que se passar despercebido pelo programador pode gerar o mesmo erro que aconteceu comigo. No meu caso após ler o cheque, o próximo passo era terminar o lançamento do mesmo, um dos processos era efetuar a distribuição de custo para o cheque, era aí que acontecia o erro, em determinado momento eu setava o SetRoundMode para rmDown, quando eu ia ler outro cheque o componente utiliza a função round, porém ela estava setada para rmDown, e aí o componente acusa CMC7 inválido. Minha sugestão nesse caso, seria na função CalcDigitoCMC7 setar o SetRoundMode para rmNearest antes de executá-la . Bom fica aí minha dica, eu fiz no fonte do componente e funcionou perfeitamente. Não sei como e se posso replicar isso pra vocês. Espero ter contribuído de alguma forma.

  • 1 ano depois...
Postado

Daniel boa tarde,

Daniel descobri qual o problema desse erro do CMC7, na verdade o erro não está no componente não, porém descobri algo que se passar despercebido pelo programador pode gerar o mesmo erro que aconteceu comigo. No meu caso após ler o cheque, o próximo passo era terminar o lançamento do mesmo, um dos processos era efetuar a distribuição de custo para o cheque, era aí que acontecia o erro, em determinado momento eu setava o SetRoundMode para rmDown, quando eu ia ler outro cheque o componente utiliza a função round, porém ela estava setada para rmDown, e aí o componente acusa CMC7 inválido. Minha sugestão nesse caso, seria na função CalcDigitoCMC7 setar o SetRoundMode para rmNearest antes de executá-la . Bom fica aí minha dica, eu fiz no fonte do componente e funcionou perfeitamente. Não sei como e se posso replicar isso pra vocês. Espero ter contribuído de alguma forma.

Olá Fabio, gostaria de saber sobre esse seu programa... Ele valida o cmc7 e reporta o cmc7 identico o da folha ? Obrigado.

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