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,从欧元到美元,都是正数。从港币,人民币到美元都是负数。所以在转化的时候注意更改汇率方向。
美元 = 欧元 * 汇率;
美元 = 港元或人民币 / 汇率。