SAP ALV中同一列的不同行显示不同的小数位,并能够总计,小计

物料数量字段,根据物料类型的不同,来显示不同的小数位;要求有点苛刻;

首先,要能够总计和小计的话,这一列的字段类型必须是数值类型。

这样的话,就不能通过截取的方式改变不同行的小数位。

以下是两种思路:

1、使用edit_mask,即convert exit,在对应的function module中根据外部条件来判断应该显示多少位,然后使用截取的方法显示。

但是,外部条件不好获取,因为convert exit的fm只有输入输出两个参数,倒是可以再使用export/import传物料类型进来。

注意,convert exit使用起来有一个bug,就是通过alv标准导出功能到本地excel时可能数据仍是转换之前的,在层级的alv中直接导不出来。有个note是专治这个的。

2、ALV的field catalog有个字段是 qfieldname ,这个字段把当前记录的计量单位字段传进去。ALV显示的时候,会自动调整为本计量单位配置的小数位(请见计量单位的配置)。这种方法很方便,但是针对本需求也有担心,不同的物料类型的物料单位未必满足用户小数位的要求。那可以活用一下,找到用户要求小数位的计量单位,在内表加一列,人为的添加一个假的计量单位给它。我使用的就是这个方法。

本来告诉用户不能实现,在用户一再坚持之下才勉强做出来,也可能是我想复杂了,不知道大家有没有更方便,高效的办法,欢迎各位拍砖。

原文地址:https://www.cnblogs.com/ruingy/p/3594727.html