一、货币转换因子
有些货币比较特殊,比如日元JPY、越南盾VND等货币是没有小数点的,表-TCURX
但是SAP系统后台表存储必须保留2位小数,所以前台和后台表查询到的金额会不一致。
SAP有设置转换因子,表-TCURF,比率为100表示在系统中存储缩小了100倍
可以调用函数:CURRENCY_CONVERTING_FACTOR - 获取转换因子,将金额进行换算
DATA: F_FACTOR TYPE P DECIMALS 3.
CLEAR: F_FACTOR.
**获取转换因子
CALL FUNCTION 'CURRENCY_CONVERTING_FACTOR'
EXPORTING
currency = GT_BSEG-WAERS
IMPORTING
factor = F_FACTOR "USD转换因子是1;JPY转换因子是100
EXCEPTIONS
too_many_decimals = 1
OTHERS = 2.
IF F_FACTOR IS NOT INITIAL.
gt_bseg-wrbtr_n = gt_bseg-wrbtr_n * F_FACTOR. "原币金额 * 转换因子
ENDIF.
也可以调用函数:BAPI_CURRENCY_CONV_TO_EXTERNAL - 将内部金额转换成外部实际金额
二、汇率维护
维护货币兑换汇率类型-OB07
EURX-变化汇率(欧盟国家使用,CNY->EUR维护)
M-平均汇率(财务记账使用的汇率)
V-期末评估汇率(外币评估汇率)
维护货币汇率-OB08
货币汇率每修改一次,都会创建一条新的记录,存储在表-TCURR中
汇率转换函数:CONVERT_TO_LOCAL_CURRENCY
CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
EXPORTING
DATE = SY-DATUM
FOREIGN_AMOUNT = F_PRICE
FOREIGN_CURRENCY = ITAB-WAERS "将外币转换为CNY
LOCAL_CURRENCY = 'CNY'
IMPORTING
LOCAL_AMOUNT = IT_MAIN-F_NETPR
EXCEPTIONS
NO_RATE_FOUND = 1
OVERFLOW = 2
NO_FACTORS_FOUND = 3
NO_SPREAD_FOUND = 4
DERIVED_2_TIMES = 5
OTHERS = 6.
以上~~