Como Validar que un dato sea numerico

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Leonel Espitia Torres
    Member
    • ago
    • 78

    #1

    Como Validar que un dato sea numerico

    Buenos compañeros abapers:
    El campo de una tabla se utiliza para registrar cantidades, pero debido a que es un campo alfanumérico hay veces que meten datos alfanuméricos (es decir carateres diferentes de números), como hago para validar que el sistema solo tenga en cuenta los datos que sean solo números?. Existe alguna función para esto?. Muchas gracias por su colaboración.
  • DCErick
    Moderator
    • mar
    • 1090

    #2
    CLICK AQUI
    -------------------
    ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

    Comentario

    • mysmb2
      Senior Member
      • ene
      • 406

      #3
      la función NUMERIC_CHECK te va a servir.

      Saludos.
      Sebastián Chiavia
      http://www.programacionabap.com.ar

      Comentario

      • DCErick
        Moderator
        • mar
        • 1090

        #4
        Originalmente publicado por mysmb2
        la función NUMERIC_CHECK te va a servir.

        Saludos.
        Esta función creo que no es tan funcional, cuando el dato tiene deciamales te regresa que es tipo CHAR y no NUMC.

        Y la otra es que si el campo solo debe contener números pues cambiarle de tipo y no se complica la vida.
        -------------------
        ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

        Comentario

        • beltsoft
          Member
          • sep
          • 99

          #5
          DCErick es correcto con el manejador de string CO:

          CHECK var_1 CO '0123456789'.

          Saludos.
          SSE BeltSoft México
          Your Business, our motivation ...

          Comentario

          • Leonel Espitia Torres
            Member
            • ago
            • 78

            #6
            Compañeros ABAPers Gracias por tus respuestas.
            En este caso lo pude solucionar con la función NUMERIC_CHECK, pero no entendí como se implementa con CHECK var_1 CO '0123456789'. CHECK es una funcion?, me puedes dar un ejemplo en ABAP de implementacion de esto?. Gracias Leonel

            Comentario

            • jtristan
              Senior Member
              • oct
              • 240

              #7
              Hola, check es como un if. Si se cumple la condición continúa la ejecución del programa y sino saltaría al punto siguiente. Es decir, si le estás utilizando por ejemplo dentro de un loop, si se cumple, continuaría con la ejecución y sino saltaría al siguiente registro. Si es dentro de una función, si se cumple continuaría con el código de la función y sino pues saldría de la función.

              para este caso, comprueba que tu variable sólo contenga los dígitos indicados. Si tiene un valor alfa no seguiría.


              Espero haberte ayudado.

              Un saludo.

              Comentario

              • jtristan
                Senior Member
                • oct
                • 240

                #8
                Pensando en como saber si un valor es numérico también se me ha ocurrido esta idea. Es un poco rara pero parece que va. Sería dividir todos los valores entre uno y aquel que no sea numérico nos lanzará una excepción CX_SY_CONVERSION_NO_NUMBER que podemos capturar.

                data: numero type i value 15,
                caracter(4) type c value 'a23',
                decimal(10) type p DECIMALS 2 value '15.25',
                valor(10) type p decimals 2.



                try.
                valor = numero / 1.
                valor = decimal / 1.
                valor = caracter / 1.
                catch CX_SY_CONVERSION_NO_NUMBER.
                write 'no es numerico'.
                endtry.

                Comentario

                • DCErick
                  Moderator
                  • mar
                  • 1090

                  #9
                  Originalmente publicado por jtristan
                  Pensando en como saber si un valor es numérico también se me ha ocurrido esta idea. Es un poco rara pero parece que va. Sería dividir todos los valores entre uno y aquel que no sea numérico nos lanzará una excepción CX_SY_CONVERSION_NO_NUMBER que podemos capturar.

                  data: numero type i value 15,
                  caracter(4) type c value 'a23',
                  decimal(10) type p DECIMALS 2 value '15.25',
                  valor(10) type p decimals 2.



                  try.
                  valor = numero / 1.
                  valor = decimal / 1.
                  valor = caracter / 1.
                  catch CX_SY_CONVERSION_NO_NUMBER.
                  write 'no es numerico'.
                  endtry.
                  Si eso podria funcionar, pero controlar una exception le cuesta mas recursos recursos al sistema xD.
                  -------------------
                  ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

                  Comentario

                  • JorgeAntonio

                    #10
                    String es numerico?

                    Si es el caso de strings; éste Módulo de Función es muy útil:
                    NUMERIC_CHECK

                    Comentario

                    Trabajando...