在SAP系统中,对于曰币、韩币这类特殊货币的处理是有特殊规则

【CURRENCY_CONVERTING_FACTOR】
在SAP系统中,对于曰币、韩币这类特殊货币的处理是有特殊规则的。
 
具体的处理逻辑为:
首先根据币别到DB表TCURX中读取相应的小数位数CURRDEC。
如果没有维护相应币别信息则默认CURRDEC = 2。
如果 CURRDEC GT 5.就报错。
然后默认转换比率是100。
在CURRDEC NE 0的情况下
循环CURRDEC次,每次将转换比率除以10 。

所以如果表TCURX中的CURRDEC = 0就默认转换比率为100。
当表TCURX中没有找到相应数据时则默认CURRDEC = 2。
转换比率也就是100 / 10 / 10 = 1.

其他的比如如果表TCURX中的CURRDEC = 4,则转换比率应该为 100 / 10 / 10 / 10 / 10 = 0.01

我们在SE16中看到的货币金额基本上都经过了这个转换,如曰元,都是除以100后存入数据库的。
所以当我们从数据库中读取曰元金额时也应该作相应的转换,乘以100 。

简单的使用Function CURRENCY_CONVERTING_FACTOR。输入币别,就可以得到相应的转换比率了。
 
 
函数中所涉及的常用选项:
EXPORTING:
    CURRENCY:   将被处理的货币种别编号
IMPORTING:
    FACTOR:      转换后得到的货币比率
 
示范代码:
FORM BRF_AP USING F_BETRAG             "  金额
                                                     F_CURRENCY.         " 货币代码

  DATA: S_FACTOR  TYPE  P DECIMALS 3.

  CALL FUNCTION 'CURRENCY_CONVERTING_FACTOR'
       EXPORTING
            CURRENCY          = F_CURRENCY
       IMPORTING
            FACTOR             = S_FACTOR
       EXCEPTIONS
            TOO_MANY_DECIMALS = 1
            OTHERS             = 2.

  IF S_FACTOR NE 0.
    F_BETRAG = F_BETRAG / S_FACTOR.
  ENDIF.
ENDFORM.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值