前言
由于VND、COP、JPY等小币种没有小数位,SAP底表金额类的字段类型是浮点类型、存储时必须有小数位,所以如果输入10000 VND底表实际存储是100.00 VND,如果直接取底表的数用来计算,这样是不对的。SAP对于不同币种存储多少位小数是有设置的(OY04配置),其数据存储在表TCURX。
一、小币种如何进行转换
在前言中可知,越南盾、日元等小币种存储数据库时会比数据显示时小100倍,如果在不知道小多少倍情况下,SAP提供了一个标准函数,可获取其币种的转换因子:
方式一:直接获取其转换因子
DATA: factor TYPE P DECIMALS 3.
CALL FUNCTION 'CURRENCY_CONVERTING_FACTOR'
EXPORTING
currency = 'VND'
IMPORTING
factor = factor.
lt_tab-signdata = lt_tab-signdata * factor.
方式二:通过BAPI直接算出其显示金额
DATA l_bapicurr LIKE bapicurr-bapicurr.
CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_EXTERNAL'
EXPORTING
currency = 'VND'
amount_internal = l_bapicurr
IMPORTING