MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Tratamiento campo CAWN-ATFLV (Coma flotante) (foro/showthread.php?t=37826)

cramr 22/07/10 14:58:00

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 23/07/10 01:19:30

Utiliza field Symbol, te puede ayudar a resolver el problema

cramr 23/07/10 08:04:22

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

Jonathan Barrio 23/07/10 10:17:59

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.

cramr 23/07/10 11:18:35

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

cramr 23/07/10 11:57:20

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


Husos Horarios son GMT. La hora en este momento es 23:12:18.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web