例1:
获取当天汇率的方法
DATA I_GDATU LIKE SY-DATUM.
DATA I_TCURR LIKE TCURR OCCURS 0 WITH HEADER LINE.
IF ITAB-WAERK EQ 'EUR'. "欧元
CALL FUNCTION 'CONVERSION_EXIT_INVDT_INPUT'
EXPORTING
INPUT = SY-DATUM
IMPORTING
OUTPUT = I_GDATU.
SELECT KURST FCURR TCURR UKURS GDATU UP TO 1 ROWS
INTO CORRESPONDING FIELDS OF TABLE I_TCURR
FROM TCURR "汇率
WHERE KURST EQ 'M' "汇率类型
AND FCURR EQ ITAB-WAERK "从货币
AND TCURR EQ 'USD' "最终货币
AND GDATU > I_GDATU "汇率有效起始日期
ORDER BY GDATU.
READ TABLE I_TCURR INDEX 1.
ITAB-GIWR = ITAB-GIWR * I_TCURR-UKURS.
ITAB-WAERK = 'USD'.
ELSEIF ITAB-WAERK EQ 'HKD'."港币
CALL FUNCTION 'CONVERSION_EXIT_INVDT_INPUT'
EXPORTING
INPUT = SY-DATUM
IMPORTING
OUTPUT = I_GDATU.
SELECT KURST FCURR TCURR UKURS GDATU UP TO 1 ROWS
INTO CORRESPONDING FIELDS OF TABLE I_TCURR
FROM TCURR "汇率
WHERE KURST EQ 'M' "汇率类型
AND FCURR EQ 'USD' "从货币
AND TCURR EQ ITAB-WAERK "最终货币
AND GDATU > I_GDATU "汇率有效起始日期
ORDER BY GDATU.
READ TABLE I_TCURR INDEX 1.
ITAB-GIWR = ITAB-GIWR / I_TCURR-UKURS.
ITAB-WAERK = 'USD'.
ELSEIF ITAB-WAERK EQ 'RMB'."人民币
CALL FUNCTION 'CONVERSION_EXIT_INVDT_INPUT'
EXPORTING
INPUT = SY-DATUM
IMPORTING
OUTPUT = I_GDATU.
SELECT KURST FCURR TCURR UKURS GDATU UP TO 1 ROWS
INTO CORRESPONDING FIELDS OF TABLE I_TCURR
FROM TCURR "汇率
WHERE KURST EQ 'M' "汇率类型
AND FCURR EQ 'USD' "从货币
AND TCURR EQ ITAB-WAERK "最终货币
AND GDATU > I_GDATU "汇率有效起始日期
ORDER BY GDATU.
READ TABLE I_TCURR INDEX 1.
ITAB-GIWR = ITAB-GIWR / I_TCURR-UKURS.
ITAB-WAERK = 'USD'.
ENDIF.
注意表TCURR,从欧元到美元,都是正数。从港币,人民币到美元都是负数。所以在转化的时候注意更改汇率方向。
美元 = 欧元 * 汇率;
美元 = 港元或人民币 / 汇率。
例2:
获取汇率的完整实现之一
经常用到,好不容易做了一个完整的。
data: cw_rate like bapi1093_0.
data: s_c_factor type p decimals 3,
t_c_factor type p decimals 3,.
data: s_waerk type waerk,
t_waerk type waerk,
curdate type rscalday,"add by Robin 2010.08.07
l_rate type p decimals 4.
*1. 获取汇率信息
call function 'BAPI_EXCHANGERATE_GETDETAIL'
exporting
rate_type = 'M'
from_curr = s_waerk
to_currncy = t_waerk
date = curdate
importing
exch_rate = cw_rate.
*2. 获取转换因子
call function 'CURRENCY_CONVERTING_FACTOR'
exporting
currency = s-waerk
importing
factor = s_c_factor.
call function 'CURRENCY_CONVERTING_FACTOR'
exporting
currency = t-waerk
importing
factor = t_c_factor.
l_rate = cw_rate-exch_rate * ( cw_rate-to_factor / cw_rate-from_factor )
* ( s_c_factor / t_c_factor ) .
注意:CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_INTERNAL'
再CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
*"对于像JPY TWD 等 比人民币小的 不然出来的金额会扩大(一般是扩大100倍)
or READ_EXCHANGE_RATE