FavoriteLoading
2

[问题解决]ALV可输入状态下输入金额/数量字段小数位数提前的问题

[隐藏]

1, 问题描述

ALV单元格在可输入状态下,金额和数量类型的字段小数点的位置会发生错误,数量是quan类型,金额是curr类型,如下:

错误情况如下:qty输入66,结果显示0.066小数点提前3位,差1000倍,price输入7,结果显示0.07,小数点提前两位,差100倍。

2, 问题解决

方法如下:

1、对于货币字段,catalog中再添加一个“指定数据类型”的属性datatype,如下:
wa_fieldcat-datatype      = 'CURR' .     " 指定数据类型
这样在修改数据并保存时,才能将数据保持原样,否则输入的数据会自动将小数点提前2位;

2、对于数量字段,也要添加一个“指定数据类型”的属性,才能保持数据的正确性,如下:
wa_fieldcat-datatype      = 'QUAN' .  " 指定数据类型
wa_fieldcat-inttype         = 'C' .       "这个是指定字段的类型为C

完整代码:

测试结果:

以上。