Boa tarde Pessoal. Tenho uma duvida que é bem simples para muitos. eu tenho um campo caracter (campo de tabela), e preciso valida-lo para que o mesmo só aceite numeros. como ficaria meu IF? Obrigado!
Boa Tarde, Meu caro, Clicando 2x no campo e nas Propriedades dele pondo o formato 99999 não vai aceitar Carácter e também não vai aceitar que seja diferente da quantidade de 9 que você pré-estabeleceu, pra isso se não souber a quantidade exata pode pôr ZZZZ9 por exemplo, daí só vai aceitar números. Porém caso queira uma procedure pra verificar se o que foi digitado existe carateres pelo meio, lá vai: Você obtem do usuário o caracter e manda checar se está ok, indo na procedure e trazendo uma variável lógica com o resultado. Código: DEF VAR vTeste AS CHAR. DEF VAR vValida AS LOG. ASSIGN vValida = NO. UPDATE vTeste. RUN Descobre_Caracter(INPUT vTeste, OUTPUT vValida). IF NOT vValida THEN DO: MESSAGE "Este Campo é deve ser Preenchido com Números..." VIEW-AS ALERT-BOX. END. ELSE DO: /* COntinua o Processo*/ END. Código: PROCEDURE Descobre_Caracter. DEF INPUT PARAMETER pTeste AS CHAR. DEF OUTPUT PARAMETER vNumero AS LOG. DEF VAR i AS INT. ASSIGN vNumero = YES. DO i = 1 TO LENGTH(pTeste). if asc(SUBSTRING(pTeste,i,1)) > 58 THEN ASSIGN vNumero = NO. END. MESSAGE vNumero VIEW-AS ALERT-BOX. END PROCEDURE. Espero que tenha lhe ajudado, Eriuton Charles
Oi Tiago. Outra manieira bem simples está no exemplo abaixo: DEF VAR XX AS CHAR. DEF VAR NN AS DEC. UPDATE XX . ASSIGN NN = INT(XX) NO-ERROR. IF ERROR-STATUS:ERROR THEN MESSAGE "ERRO" VIEW-AS ALERT-BOX INFO BUTTONS OK. Agraços. Atila