赛跑网

 找回密码
 注册

QQ登录

只需一步,快速开始

快捷登录

查看: 2886|回复: 12

赛跑网-SAP中的货币转换因子

[复制链接]
发表于 2012-5-4 08:51:00 | 显示全部楼层 |阅读模式
ABAP开发中,有个概念很重要,即Currency Converting Factor(货币转换因子)。这里我们就简单探讨下:
1. 什么是货币转换因子
在SAP中,货币是维护在TCURC表里面,这从Domain: WAERS中可以看到。
不过这里我们要介绍的是表TCURX,它维护了货币金额的小数位。比如JPY日元,在该表是0。正常的货币都是2位小数的。那么,该表有什么意义呢?我们来看下面的例子。
DATA: netwr TYPE p DECIMALS 2.
netwr = '1.3'.
WRITE: netwr CURRENCY 'JPY'.
输出的结果是130,即1.3*100,我们说日元的转换因子为100。这是因为TCURX定义了日元没有小数位,那么数据库表的实际数字 1.3 就解释成了130。反过来就是,我们认为的130日元,在数据库里存储成了1.3。这个过程都是SAP自动处理的。
同理,小数位为1的,其转换因子为10;而RMB因为小数位为2,其转换因子为1,这也是系统的默认值。
2. 如何将CURR字段赋给DEC(P)字段
如果要将一个CURR字段赋值给类型为DEC(P)的字段,则要考虑货币转换因子的影响。当我们写与外系统集成的接口时,这就显得很有必要了。
这里介绍个函数:CURRENCY_CONVERTING_FACTOR,它可用于读取货币转换因子。
DATA: v LIKE vbap-netwr,
      p TYPE p DECIMALS 2,
      cur LIKE vbap-waerk,
      factor TYPE p DECIMALS 3.

v = '1.3'.
cur = 'JPY'.

游客,如果您要查看本帖隐藏内容请回复
IF sy-subrc <> 0.
factor = 1.
ENDIF.

p = v * factor.
WRITE: p.
这样,我们与外系统集成时,应该以p作为接口参数,130日元就不会错误地成了1.3日元。

最近访客

  • austin
    2022-03-24
  • 16570657
    2021-05-31
  • 91_ARES
    2021-05-27




上一篇:赛跑网-R/3系统数据表的分类
下一篇:赛跑网-FOR ALL ENTRIES的原理及注意事项
本楼点评(0) 收起
发表于 2013-1-15 10:26:20 | 显示全部楼层
xuexi
本楼点评(0) 收起
发表于 2013-1-18 11:43:10 | 显示全部楼层
学习
本楼点评(0) 收起
发表于 2013-3-3 20:14:41 | 显示全部楼层
学习
本楼点评(0) 收起
发表于 2013-4-28 01:43:43 | 显示全部楼层

thanks

cx楼主辛苦啦,这个问题对我很重要
本楼点评(0) 收起
发表于 2017-2-17 11:27:20 | 显示全部楼层
很好很不错赞赞赞
本楼点评(0) 收起
发表于 2018-6-5 10:40:15 来自手机 | 显示全部楼层
学习学习学习了
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|联系我们|赛跑网 ( QQ:108519493QQfsq

GMT+8, 2024-5-3 17:59 , Processed in 0.242701 second(s), 59 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

快速回复 返回顶部 返回列表