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.... |
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. |
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?
|
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 . |
Puedes utilizar la función:
NUMERIC_CHECK:rolleyes: |
Hola, puedes usar. check lv_campo CO '0123456789 '. no olvidar el espacio en blanco después del 9. Saludos |
Husos Horarios son GMT. La hora en este momento es 20:21:02. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web