Ir para conteúdo
  • Cadastre-se

dev botao

ACBrValidador


jcanjo
Ver Solução Respondido por EMBarbosa,
  • Este tópico foi criado há 1709 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

No ACBrValidador encontrei erro na passagem de parâmetros da mensagem de erro na validação IE e fiz umas alterações que regulariza nas siglas AC, AP, GO, PE, RN e RO.

Nelas caso tivesse erro de tamanha da informação passada, variável “Tamanho” não era atribuída nenhum valor, sendo assim a mensagem erro fica incompleta.

 

Segue um exemplo.

 

if fsComplemento = 'RO' then

begin

….

end

else

// if Length(fsDocto) = 14 then → “Item alterado, linha comentada”

begin

....

end ;

end ;

 

Espero que te ajudo e aprove o resultado.

Segue a unit em anexo.

ACBrValidador.pas

Editado por jcanjo
Pontuação e Titulo
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Pelo que entendi as suas alterações mesmo que muito confuso faz um pouco de sentido.

Citar

if fsComplemento = 'AP' then
  begin
//     if Length(fsDocto) = 9 then
  //    begin
        Tamanho := 9 ;
        xROT := 'CE' ;
        vDigitos   := VarArrayOf(
           ['DVX',c0_9,c0_9,c0_9,c0_9,c0_9,c0_9,'3','0','','','','',''] ) ;

        if (fsDocto >= '030170010') and (fsDocto <= '030190229') then
           FatorF := 1
        else if fsDocto >= '030190230' then
           xROT := 'E' ;
    //  end ;
  end ;
 

 Vamos tomar por base esse exemplo onde você aplicou os comentários;

No meu entendimento se o tamanho estiver certo 9 dígitos ele aplica e faz a validação caso contrario passa direto  e não avisa que esta fora do tamanho esperado;

O que poderia ser feito nesse caso e gerar uma exceção avisando que o tamanho esta fora do esperado.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

5 minutos atrás, Daniel Simoes disse:

Tentou deixar


ACBrValidador1.AjustarTamanho :=  True;

 

Sim.

Mesmo assim não completa com zeros a esquerda. Por que variável "tamanho" não recebe nenhum valor.

1 hora atrás, Waldir Paim disse:

Pelo que entendi as suas alterações mesmo que muito confuso faz um pouco de sentido.

 Vamos tomar por base esse exemplo onde você aplicou os comentários;

No meu entendimento se o tamanho estiver certo 9 dígitos ele aplica e faz a validação caso contrario passa direto  e não avisa que esta fora do tamanho esperado;

O que poderia ser feito nesse caso e gerar uma exceção avisando que o tamanho esta fora do esperado.

Caso a quantidade de caracter ( numero ) não for igual a 9, ele não setava a variável "Tamanho" com os 9 digitos.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Waldir Paim disse:

Pelo que entendi as suas alterações mesmo que muito confuso faz um pouco de sentido.

 Vamos tomar por base esse exemplo onde você aplicou os comentários;

No meu entendimento se o tamanho estiver certo 9 dígitos ele aplica e faz a validação caso contrario passa direto  e não avisa que esta fora do tamanho esperado;

O que poderia ser feito nesse caso e gerar uma exceção avisando que o tamanho esta fora do esperado.

Caso a quantidade de caracter ( numero ) não for igual a 9, ele não setava a variável "Tamanho" com os 9 digitos.

Sobre a mensagem de erro existe, mas repare que a informação do tamanho esta zerado.

Codigo !

  OK := (Tamanho > 0) and (Length(fsDocto) = Tamanho) ;
  if not OK then
     fsMsgErro := Format('Tamanho Inválido, esperado %d caracteres, foram digitados somente %d caracteres, verique', [Tamanho, Length(fsDocto)]) ;
 

Editado por jcanjo
inserção do codigo
Link para o comentário
Compartilhar em outros sites

  • 5 meses depois ...
  • Consultores
  • Solution
Em 06/02/2019 at 15:00, jcanjo disse:

Espero que te ajudo e aprove o resultado.

 

Segue a unit em anexo.

ACBrValidador.pas 67 kB · 2 downloads

Muito obrigado pela contribuição.
Fiz a implementação baseada nela com algumas alterações.
Subi as alterações para o SVN na Revisão  17369.
Pelo que vi está tudo certo.
Queira por favor atualizar, testar e reportar qualquer problema.

Mais uma vez obrigado.

  • Curtir 2

[]'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.
Link para o comentário
Compartilhar em outros sites

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