Tratamiento campo CAWN-ATFLV (Coma flotante)

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • cramr
    Member
    • oct
    • 68

    #1

    Tratamiento campo CAWN-ATFLV (Coma flotante)

    Estoy trabajando con las tablas CABN y CAWN, se recuperar el valor en coma flotante y pasarlo a CHAR para mostrarlo y demás.

    Pero pongamos que tengo en una variable de tipo ATWRT (CHAR de 30) el valor del numero en coma flotante recuperado de la CAWN-ATFLV. Si yo deseo comprobar si dicho valor está en la tabla CAWN y para ello quiero comparar con el campo ATFLV, necesito pasar dicho número en la cadena CHAR(30) a un campo de tipo ATFLV.

    Como puedo convertir dicho número que puede ser por ejemplo, decima, vease 1,324, a un campo de tipo coma flotante?

    como puedo trabajar con esto?

    Veo funciones para pasar de coma flotante a CHAR, pero no a la inversa...

    Estoy perdido...

    Muchas gracias
  • Fabian leonardo velasquez
    Member
    • sep
    • 62

    #2
    Utiliza field Symbol, te puede ayudar a resolver el problema
    Cordialmente
    Fabián Leonardo Velásquez P.
    Consultor SAP ABAP
    Bogota - Colombia

    Comentario

    • cramr
      Member
      • oct
      • 68

      #3
      Probé y no me funciona.

      Si defino el field symbol asi:

      FIELD-SYMBOLS : <float> TYPE ANY.

      Y asigno el valor asi:

      ASSIGN VALOR TO <float>.

      donde VALOR es un CHAR30...a la hora de comparar en el acceso a la tabla:

      SELECT SINGLE *
      FROM CAWN
      WHERE ATINN = CABN-ATINN
      AND ATFLV = <float>.

      da un casque (dump) porque dice que <float> no es un número.

      Como podría hacerlo???


      Gracias

      Comentario

      • Jonathan Barrio
        Junior Member
        • nov
        • 25

        #4
        Nunca me ha tocado trabajar con coma flotante, sin embargo en el código que has pasado no sé si has declarado de la mejor manera las variables.

        Creo que R/3 te hace automaticamente el cast, aunque también puede depender de la release del sistema.

        Prueba:

        data:
        STDR_CAWN type standard table of CAWN,
        LV_FLOAT type CAWN-ATFLV,
        LV_VALOR(30) type C.



        LV_VALOR = 1234 / 1000.

        LV_FLOAT = LV_VALOR. "¿ hará R/3 el cast automáticamente ?
        clear: LV_FLOAT.
        LV_FLOAT = 1234.
        LV_FLOAT = 500.
        LV_FLOAT = 1305800.
        LV_FLOAT = 1305801.

        Comentario

        • cramr
          Member
          • oct
          • 68

          #5
          Si asigno el valor de LV_VALOR a LV_FLOAT como indicas, da un DUMP

          Unable to interpret "0,630 " as a number.


          Ya lo había probado, pero no. Y no esto atascado. La cuestión es que en una ventana de un modulpool, utilizo una función de estas de F4 para queel matchcode me devuelva los valores. cuando bsuca los valores, aunque en la CAWN esté almacenado en coma flotante, el matchcode ya lo devuelve en formato ATWRT (CHAR30).

          El tema es que si mas alante necesito chequear que el valor de ese campo de la dynpro es valido, entonces al acceder a la CAWN el valor lo tengo pero en formato CHAR y no coma flotante, de ahi que necesite convertirlo a formato ATFLV

          Comentario

          • cramr
            Member
            • oct
            • 68

            #6
            Ya lo solucione, para el que le venta bien..

            Función: COC1_CONV_VALUES_AFTER_INPUT

            Le indicas el valor y el ATINN (CABN) de la característica y listo.


            Un saludo

            Comentario

            Trabajando...