SAP 库存物资收发存报表主要思路

1           数据获得:

设屏幕输入的日期区间为:YMD日~ZNE

YMD日或ZNE日晚于系统当前日期,报错

若选择的库存地点不属于选择的工厂(T001L中不存在记录:T001L-LGORT=屏幕输入的库存地点 and T001L-WERKS=屏幕输入的工厂),报错

 

建立函数FUNCTION1用来计算一段时间内工厂范围的物料收发数量和金额(详见后)

输入参数:起止日期zmfdzmtd、物料号zmatnr、评估范围zbwkey

输出参数:期间入库数量zsq-r、期间出库数量zsq-i、期间入库金额zmv-r、期间出库金额zmv-i

 

建立函数FUNCTION2用来计算一段时间内库存地点范围的物料收发数量(详见后)

输入参数:起止日期zmfdzmtd、物料号zmatnr、工厂zwerks、库存地点zlgort

输出参数:期间入库数量zsq-r、期间出库数量zsq-i

 

1)按照屏幕输入条件先在MARA中找出所有需要查询的物料号,形成数据集ZMAT

MARA-MATNR in 屏幕输入的物料 and

MARA-MATKL in 屏幕输入的物料组 and

MARA-PRDHA  in 屏幕输入的产品层次 and

MARC中存在记录:MARC-MATNR=MARA-MATNR and MARC-WERKS=屏幕输入的工厂

 

2)对于ZMAT中的每条记录,查询MBEWQBEW

Step1.在MBEW中查找满足以下条件的记录:

MBEW-MATNR=ZMAT-MATNR and

MBEW-BWKEY=屏幕输入的工厂

Step2.在QBEW中查找满足以下条件的记录(可能多条)

QBEW-MATNR=ZMAT-MATNR and

QBEW-BWKEY=屏幕输入的工厂 and

QBEW-SOBKZ="Q"

Step3.对于在MBEWQBEW中取得的所有记录,在ZMAT中添加字段:

ZMAT-LBKUM=MBEW-LBKUM加上所有QBEW-LBKUM

ZMAT-SALK3=MBEW-SALK3加上所有QBEW-SALK3

ZMAT-LFGJA&ZMAT-LFMONMBEW-LFGJA&MBEW-LFMON和所有QBEW-LFGJA&QBEW-LFMON中最晚的一组年月

 

3)经过上述查找,对于ZMAT中的每条记录计算工厂范围的期初与期末库存数量和金额

ZMAT-LFGJA&ZMAT-LFMON为空,即MBEWQBEW中未查得记录 ------------case1

à

期初=期末=0(金额&数量)

 

ZMAT-LFGJA ( ZMAT-LFGJA=YZMAT-LFMON<m )=""  -------------case2

à

期初数量=期末数量=ZMAT-LBKUM

期初金额=期末金额=ZMAT-SALK3

 

ZMAT-LFGJA=YZMAT-LFMON=M

  ZMAT-LFGJA ( ZMAT-LFGJA=ZZMAT-LFMON<n )  ---------------case3

调用函数FUNCTION1,输入参数zmfd YMD日、zmtdZNE日、zmatnr=ZMAT-MATNRzbwkey=屏幕输入的工厂

     返回参数:zsq-rzsq-izmv-rzmv-i

      à

     期初数量=ZMAT-LBKUM减去zsq-r加上zsq-i

     期初金额=ZMAT-SALK3减去zmv-r加上zmv-i

     期末数量=ZMAT-LBKUM

     期末金额=ZMAT-SALK3

 

   ZMAT-LFGJA=ZZMAT-LFMON=N ----------------case4

Step1.调用函数FUNCTION1,输入参数zmfd YMD日、zmtdZNE日、zmatnr=ZMAT-MATNRzbwkey=屏幕输入的工厂

     返回参数:zmq-rzmq-izmv-rzmv-i

à

     期间入库数量为zmq-r

     期间出库数量为zmq-i

     期间入库金额为zmv-r

     期间出库金额为zmv-i

Step2.调用函数FUNCTION1,输入参数zmfd YMD日、zmtdZMAT-LFGJAZMAT-LFMON月末、zmatnr=ZMAT-MATNRzbwkey=ZMAT-BWKEY

     返回参数:zmq-rzmq-izmv-rzmv-i

      à

     期初数量=ZMAT-LBKUM减去zmq-r加上zmq-i

     期初金额=ZMAT-SALK3减去zmv-r加上zmv-i

Step3.调用函数FUNCTION1,输入参数zmfd ZNE+1日、zmtdZMAT-LFGJAZMAT-LFMON月末、zmatnr=ZMAT-MATNRzbwkey=ZMAT-BWKEY

     返回参数:zmq-rzmq-izmv-rzmv-i

      à

     期末数量=ZMAT-LBKUM减去zmq-r加上zmq-i

     期末金额=ZMAT-SALK3减去zmv-r加上zmv-i

 

ZMAT-LFGJA>Y  ( ZMAT-LFGJA=YZMAT-LFMON>M )

  ZMAT-LFGJA>Z  ( ZMAT-LFGJA=ZZMAT-LFMON>N )

取数逻辑同case4

  ZMAT-LFGJA=ZZMAT-LFMON<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值