#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 |
#2
|
||||
|
||||
Utiliza field Symbol, te puede ayudar a resolver el problema
|
#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 |
#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. |
#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 |
#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 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|