PDA

Ver la Versión Completa : CO (contains only)


goyleo
05/08/08, 13:12:56
Hola gente estoy tratando de determinar si hay algun caracter no nomerico en una cadena, y siemrpe se va por el else, venga lo que venga, numeros solos, numeros con letras, da lo mismo. alguien tiene idea de por que pasa??? :(
O si hay alguna mejor manera de resolver el problema escucho ofertas !! :)

Muchas Gracias.


data co_numeros(12) TYPE c VALUE '0123456789,.'.

ga_costo_string-file es del tipo:
TYPES: BEGIN OF ty_costo_string,
file(255) TYPE c,
END OF ty_costo_string.


CONDENSE ga_costo_string-file.
IF ga_costo_string-file CO co_numeros.
ga_costo-zt_costoa = ga_costo_string-file.
ELSE.
MESSAGE e158(zpm_tepam).
ENDIF.

melerogalan
05/08/08, 13:35:23
Prueba con esto, es hacer una asignación a un número, si se le asigna algún carácter no numérico, salta la excepción. Incluso con esto controlas si te meten muchas comas y puntos sin sentido, es decir, controlas que el número tenga un formato correcto.

TRY .
move l_string to l_num.
CATCH CX_SY_CONVERSION_NO_NUMBER.
l_flag = 'X'.
ENDTRY.

if l_flag = 'X' error.
else exito.

goyleo
05/08/08, 13:53:14
gracias por la respuesta !

sbenselum
05/08/08, 16:26:21
o sino probando comparandolo con un string ;)

saludos pibe!