金额字段小数位的控制

SAP系统中人民币(CNY)美元(USD)是带小数点的,而越南盾(VND),韩元(KRW),日元(JPY)的金额是不带小数点的。如果不进行特别处理的话,在ALV、SCREEN等界面显示金额字段时,小数位的显示就存在扩大100倍与减小100倍的情况。

以VK11创建条件记录为例,如果货币单位为VND,当金额值输入100时,后面没有小数位。

在这里插入图片描述

保存成功后查看系统表发现,金额字段实际存储的值是1.00,这说明系统对不同的币种是会做小数位位移的。

查看表TCURX,存在VND的数据,但是没有USD, CNY的数据。

在这里插入图片描述

这中间是有一个转换关系的,通过下面的代码可以实现存储值与显示值的转换

A. 显示存储的金額
DATA: SHIFT TYPE I.
CLEAR SHIFT.
SELECT SINGLE * FROM TCURX WHERE CURRKEY = (货币类型).
IF SY-SUBRC = 0.
SHIFT = 2 - TCURX-CURRDEC.
ENDIF.
(显示金額) = (存储金額) * 10 ** SHIFT.
B. 存储输入的金額(至CURR type的数据表的字段)
DATA: SHIFT TYPE I.
CLEAR SHIFT.
SELECT SINGLE * FRO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值