ABAP 单位转化

来源:互联网 发布:人工智能芯片龙头股票 编辑:程序博客网 时间:2024/04/30 00:43

物料的基本单位是:PC

客户要求的单位是:箱

用事务码:MM03 查看物料,进入“附加数据”  选“计量单位”


一般都会想到用函数:

MD_CONVERT_MATERIAL_UNIT 这个函数是大家公认推荐使用的单位转化函数,简单,移动,参数明了。


但是不是所有的单位转化都得借助于函数来完成。

下面这段代码:搜索出物料的库存数量,把库存数量的基本单位转成 箱。

首先在表MARD里搜索出物料,工厂,库存数量,然后管理mara表搜索出基本计量单位 写入内表ITAB。

然后 用for all entries in itab  在表MARM里搜索出相关物料的 转换单位,分子分母。

然后计算出多少基本单位转化成箱。

  SELECT a~matnr b~maktx a~werks a~lgort a~labst c~meins INTO CORRESPONDING FIELDS OF TABLE itab    FROM mard AS a    JOIN makt AS b ON a~matnr = b~matnr    JOIN mara AS c ON b~matnr = c~matnr    WHERE a~matnr IN r_matnr      AND a~werks IN r_werks      AND a~lgort IN r_lgort      and a~labst ne 0      AND b~spras = '1'.  IF itab[] IS not INITIAL.    SELECT matnr meinh umrez umren INTO CORRESPONDING FIELDS OF TABLE itab_danwei      FROM marm      FOR ALL ENTRIES IN itab[]      WHERE matnr = itab-matnr.  ENDIF.  LOOP AT itab.    CLEAR:itab_danwei.    READ TABLE itab_danwei WITH KEY matnr = itab-matnr  meinh = 'KAR' BINARY SEARCH.    if sy-subrc eq 0.      itab-xshu = itab-labst * itab_danwei-umren / itab_danwei-umrez.    endif.    MODIFY itab.  ENDLOOP.