Campo numérico

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • vstarke
    Member
    • feb
    • 60

    #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....
  • Neo_25
    Member
    • jun
    • 51

    #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.

    Comentario

    • vstarke
      Member
      • feb
      • 60

      #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?

      Comentario

      • Alfredosite
        Senior Member
        • jul
        • 135

        #4
        Solución

        Originalmente publicado por vstarke
        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?
        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 .
        Editado por última vez por Alfredosite; 09/03/2010, 16:39:25.
        Saludos Cordiales,
        Alfredo Pastor Avendaño
        SAP - Consultant HCM

        Comentario

        • karinastolen
          Member
          • mar
          • 60

          #5
          Puedes utilizar la función:
          NUMERIC_CHECK
          "Experience is what you get when you didn't get what you wanted." Randy Pausch

          Comentario

          • grandnomade
            Junior Member
            • ene
            • 18

            #6
            Originalmente publicado por vstarke
            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....
            Hola, puedes usar.

            check lv_campo CO '0123456789 '.

            no olvidar el espacio en blanco después del 9.

            Saludos

            Comentario

            Trabajando...