#1
|
|||
|
|||
Campo numérico
buenas!.. a ver si me pueden ayudar,
quiero validar que un campo sea absolutamente numérico sin "." ni "," sólo números... espero y me puedan ayudar gracias.... |
#2
|
|||
|
|||
A ver si te vale esto:
DATA: lv_digitos TYPE char10 VALUE '0123456789', lv_comprobar TYPE char128 VALUE '556'. DATA: lv_error TYPE char1. CALL FUNCTION 'CHECK_AND_CONVERT_NUMERICS' EXPORTING dmzei = '.' dtype = 'DEC' efeld = lv_comprobar imp_decimals = '0' IMPORTING error = lv_error. IF lv_error = 'X'. "error, la variable tiene letras ELSE. "ok, la variable sólo tiene números ENDIF. |
#3
|
|||
|
|||
gracias por responder.. pero eso funciona sólo hasta validar con "." si pongo "," pasa... hay laguna forma de validar esto sin tenerque llamar al método convert más de dos veces?
|
#4
|
||||
|
||||
Solución
Puede aplicar este algoritmo: PARAMETERS: p_cadena TYPE string."Parametro y/o valor de campo a tratar(alfanumerico) DATA: gv_out TYPE string,"Salida luego del tratamiento(quitar valores alpha) gv_int TYPE i, "Captura los valores numéricos gv_cont TYPE i, "Contador de recorrido de cadena gv_char1 TYPE c. RANGES: lr_num FOR gv_char1. START-OF-SELECTION. lr_num-sign = 'I'. lr_num-option = 'BT'. lr_num-low = '0'. lr_num-high = '9'. APPEND lr_num. gv_cont = STRLEN( p_cadena ). DO gv_cont TIMES. IF p_cadena+gv_int(1) IN gr_num. CONCATENATE gv_out p_cadena+gv_int(1) INTO gv_out . ENDIF. ADD 1 TO gv_int. ENDDO. WRITE: gv_out .
__________________
Saludos Cordiales, Alfredo Pastor Avendaño SAP - Consultant HCM Úlima edición por Alfredosite fecha: 09/03/10 a las 16:39:25. |
#5
|
|||
|
|||
Puedes utilizar la función:
NUMERIC_CHECK
__________________
"Experience is what you get when you didn't get what you wanted." Randy Pausch |
#6
|
|||
|
|||
Hola, puedes usar. check lv_campo CO '0123456789 '. no olvidar el espacio en blanco después del 9. Saludos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|