05-08-2006 1:16 PM
Hi,
I look for any function( instead to write myself) that
convert numerical value received by FM DYNP_VALUES_READ.
Anyhow it's depend from user definitions(123,456.000 or
123.456,000 ...)
Thank you very much
Irena
05-08-2006 1:40 PM
May be this helps:
FORM convierte USING p_cadena
CHANGING p_numero.
DATA: w_dcpfm LIKE usr01-dcpfm,
l_basebase TYPE p DECIMALS 3,
l_basepunto TYPE p DECIMALS 3,
long TYPE i,
rest TYPE i.
SELECT SINGLE dcpfm INTO w_dcpfm
FROM usr01 WHERE bname = sy-uname.
IF w_dcpfm = space.
TRANSLATE p_cadena USING '. '.
TRANSLATE p_cadena USING ',.'.
CONDENSE p_cadena NO-GAPS.
ELSEIF w_dcpfm = 'X'.
TRANSLATE p_cadena USING ', '.
CONDENSE p_cadena NO-GAPS.
ELSEIF w_dcpfm = 'Y'.
TRANSLATE p_cadena USING ',.'.
CONDENSE p_cadena NO-GAPS.
ENDIF.
TRANSLATE p_cadena USING '.#'.
SEARCH p_cadena FOR '#'.
IF sy-subrc = 0.
l_basebase = p_cadena(sy-fdpos).
long = strlen( p_cadena ).
rest = long - sy-fdpos.
ADD 1 TO sy-fdpos .
l_basepunto = p_cadena+sy-fdpos(rest).
IF l_basepunto NE 0.
l_basepunto = l_basepunto / 1000.
ENDIF.
p_numero = l_basebase + l_basepunto.
ELSE.
p_numero = p_cadena.
ENDIF.
TRANSLATE p_cadena USING '#.'.
ENDFORM. " convierte
05-08-2006 1:40 PM
May be this helps:
FORM convierte USING p_cadena
CHANGING p_numero.
DATA: w_dcpfm LIKE usr01-dcpfm,
l_basebase TYPE p DECIMALS 3,
l_basepunto TYPE p DECIMALS 3,
long TYPE i,
rest TYPE i.
SELECT SINGLE dcpfm INTO w_dcpfm
FROM usr01 WHERE bname = sy-uname.
IF w_dcpfm = space.
TRANSLATE p_cadena USING '. '.
TRANSLATE p_cadena USING ',.'.
CONDENSE p_cadena NO-GAPS.
ELSEIF w_dcpfm = 'X'.
TRANSLATE p_cadena USING ', '.
CONDENSE p_cadena NO-GAPS.
ELSEIF w_dcpfm = 'Y'.
TRANSLATE p_cadena USING ',.'.
CONDENSE p_cadena NO-GAPS.
ENDIF.
TRANSLATE p_cadena USING '.#'.
SEARCH p_cadena FOR '#'.
IF sy-subrc = 0.
l_basebase = p_cadena(sy-fdpos).
long = strlen( p_cadena ).
rest = long - sy-fdpos.
ADD 1 TO sy-fdpos .
l_basepunto = p_cadena+sy-fdpos(rest).
IF l_basepunto NE 0.
l_basepunto = l_basepunto / 1000.
ENDIF.
p_numero = l_basebase + l_basepunto.
ELSE.
p_numero = p_cadena.
ENDIF.
TRANSLATE p_cadena USING '#.'.
ENDFORM. " convierte
05-08-2006 3:06 PM
Thank you very much,but I think your code doesn't
work perfectly , in any case as idea it's good
Best regards.
05-08-2006 1:45 PM
Hi irena,
have a look at FM:
HRCM_STRING_TO_AMOUNT_CONVERT
HRCM_AMOUNT_TO_STRING_CONVERT
Best regards.
05-08-2006 3:07 PM
Thank you very much ,
but I think this function ,1-st,
doesn't work
Best regards.