De CHAR a MENG13

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Neo_25
    Member
    • jun
    • 51

    #1

    De CHAR a MENG13

    Hola y gracias de primeras,
    a ver si me podéis echar una mano, por favor.

    ¿Hay alguna función que pasándola un campo CHAR y el formato de decimales del usuario (USR01-DCPFM), te diga y te devuelva si lo introducido es un numérico y que te lo de en el formato correcto?

    En una dynpro he de enseñar un campo CHAR en el que deben escribir un campo numérico.
    Es de un campo CHAR17 a un campo LFIMG (MENG13).
    Tiene que ser un char en la dynpro porque el recuadro es muy pequeño y sólo el CHAR permite tener un recuadro más pequeño y escribir más de lo que se visualiza.

    Accedo a la tabla USR01 y el campo DCPFM me dice el formato del usuario:


    1- ¿Cómo compruebo que lo escrito es un número?
    Con la función CHECK_AND_CONVERT_NUMERICS compruebo si hay alguna letra.

    call function 'CHECK_AND_CONVERT_NUMERICS'
    exporting
    dmzei = pi_user_decimal
    dtype = 'DEC'
    efeld = po_qty_char
    imp_decimals = '9'
    importing
    error = lv_error
    .

    1,623.4 o 1.623,4 son correctos y pasan la validación de la función

    2- ¿Cómo compruebo que el número escrito está en el formato correcto?
    El problema viene al hacer: lv_LFIMG = lv_CHAR17 porque el usuario ha podido escribir:
    ‘123,34’ y eso da dump
    Los números de arriba dan ambos error: 1,623.4 o 1.623,4

    A ver si me podéis decir algo
Trabajando...