其实,对于库龄计算,其实并不复杂,关于网上的FIFO,还不是很理解,但是,我跟同事理清了一下思路,把库龄分析的整个流程简单化:
1.确定所要计算的库龄区间(一般分成6个区间)
2.计算所在区间内的入库总量A(一般为正数)
3.计算所在区间出库问题B(一般为负数)
4.计算ABS(B)-A的值C,如果C>=0表示已经出库完(库中没有任何物料),库龄数量为0,若c<0表示没有出库完,应该计算其库龄数量ABS(C)。
下面是ABAP的报表程序:
***********************************************************************
* PROGRAM NAME : ZMMR015
* PROGRAM PURPOSE : 存货账龄分析报表
* AUTHOR : 蓝志鹏
* DATA WRITTEN : 2013-03-22
* NOTE : 第二版本
***********************************************************************
* DATE | MOD | INITIAL | DESCRIPTION
*----------+------------+----------+----------------------------------*
* 2013-03-22 | DEVK903258| 蓝志鹏 | INITIAL PROGRAM CREATION
***********************************************************************
REPORT ZMMR015.
TYPE-POOLS:SLIS.
TYPES: BEGIN OF TY_OUTPUT,
ZSEL TYPE C LENGTH 1,
BUKRS TYPE MSEG-BUKRS,"公司代码
WERKS TYPE MSEG-WERKS,"工厂
LGORT TYPE MSEG-LGORT,"库位(库存地点)
MATNR TYPE MSEG-MATNR,"物料号
MAKTX TYPE MAKT-MAKTX,"物料描述
MEINS TYPE MSEG-MEINS,"基本计量单位
STOCK TYPE I,"当前库存
STNM1 TYPE I, "0-30天库龄数量
TRMB1 TYPE P DECIMALS 2, "0-30天金额
STNM2 TYPE I, "31-60天库龄数量
TRMB2 TYPE P DECIMALS 2, "31-60天金额
STNM3 TYPE I, "61-90天库龄数量
TRMB3 TYPE P DECIMALS 2, "61-90天金额
STNM4 TYPE I,"91-180天库龄数量
TRMB4 TYPE P DECIMALS 2, "91-180天金额
STNM5 TYPE I,"181-360天库龄数量
TRMB5 TYPE P DECIMALS 2, "181-360天金额
STNM6 TYPE I, "361天以上库龄数量
TRMB6 TYPE P DECIMALS 2, "361天以上金额
END OF TY_OUTPUT.
TYPES: BEGIN OF TY_TOTAL,
BUKRS TYPE MSEG-BUKRS,"公司代码
WERKS TYPE MSEG-WERKS,"工厂
LGORT TYPE MSEG-LGORT,"库位(库存地点)
MATNR TYPE MSEG-MATNR,"物料号
MAKTX TYPE MAKT-MAKTX,"物料描述
MEINS TYPE MSEG-MEINS,"基本计量单位
MENGE TYPE MSEG-MENGE,"数量
BUDAT TYPE MKPF-BUDAT,"过账日期
STPRS TYPE MBEW-STPRS,"标准价格
PEINH TYPE MBEW-PEINH,"价格单位
LABST TYPE MARD-LABST,"非限制使用库存
INSME TYPE MARD-INSME,"质检库存
SPEME TYPE MARD-SPEME,"冻结库存
PRLAB TYPE MSPR-PRLAB,"项目库存
KALAB TYPE MSKA-KALAB,"销售订单库存
SLABS TYPE MKOL-SLABS,"寄售库存
LBLAB TYPE MSLB-LBLAB,"委外供应商库存
END OF TY_TOTAL.
TYPES: BEGIN OF TY_TMP1,
BUKRS TYPE MSEG-BUKRS,"公司代码
WERKS TYPE MSEG-WERKS,"工厂
LGORT TYPE MSEG-LGORT,"库位(库存地点)
MATNR TYPE MSEG-MATNR,"物料号
MENGE TYPE MSEG-MENGE,"数量
MBLNR TYPE MSEG-MBLNR,"物料凭证号
MEINS TYPE MSEG-MEINS,"基本计量单位
MAKTX TYPE MAKT-MAKTX,"物料描述
END OF TY_TMP1.
TYPES: BEGIN OF TY_TMP2,
WERKS TYPE MARD-WERKS,"工厂
LGORT TYPE MARD-LGORT,"库位(库存地点)
MATNR TYPE MARD-MATNR,"物料号
LABST TYPE MARD-LABST,"非限制使用库存
INSME TYPE MARD-INSME,"质检库存
SPEME TYPE MARD-SPEME,"冻结库存
END OF TY_TMP2.
TYPES: BEGIN OF TY_TMP3,
WERKS TYPE MSKA-WERKS,"工厂
LGORT TYPE MSKA-LGORT,"库位(库存地点)
MATNR TYPE MSKA-MATNR,"物料号
PRLAB TYPE MSPR-PRLAB,"项目库存
END OF TY_TMP3.
TYPES: BEGIN OF TY_TMP4,
WERKS TYPE MSKA-WERKS,"工厂
LGORT TYPE MSKA-LGORT,"库位(库存地点)
MATNR TYPE MSKA-MATNR,"物料号
KALAB TYPE MSKA-KALAB,"销售订单库存
END OF TY_TMP4.
TYPES: BEGIN OF TY_TMP5,
WERKS TYPE MKOL-WERKS,"工厂
LGORT TYPE MKOL-LGORT,"库位(库存地点)
MATNR TYPE MKOL-MATNR,"物料号
SLABS TYPE MKOL-SLABS,"寄售库存
END OF TY_TMP5.
TYPES: BEGIN OF TY_TMP6,
BUKRS TYPE MSEG-BUKRS,"公司代码
WERKS TYPE MSEG-WERKS,"工厂
LGORT TYPE MSEG-LGORT,"库位(库存地点)
MATNR TYPE MSEG-MATNR,"物料号
MBLNR TYPE MSEG-MBLNR,"物料凭证
BUDAT TYPE MKPF-BUDAT,"过账日期
END OF TY_TMP6.
TYPES: BEGIN OF TY_TMP7,
BUKRS TYPE MSEG-BUKRS,"公司代码
WERKS TYPE MSEG-WERKS,"工厂
LGORT TYPE MSEG-LGORT,"库位(库存地点)
MATNR TYPE MSEG-MATNR,"物料号
MBLNR TYPE MSEG-MBLNR,"物料凭证
STPRS TYPE MBEW-STPRS,"标准价格
PEINH TYPE MBEW-PEINH,"价格单位
END OF TY_TMP7.
TYPES: BEGIN OF TY_TMP8,
WERKS TYPE MSLB-WERKS,"工厂
MATNR TYPE MSLB-MATNR,"物料号
LBLAB TYPE MSLB-LBLAB,"委外供应商库存
END OF TY_TMP8.
DATA:
GT_OUTPUT TYPE TABLE OF TY_OUTPUT,
GS_OUTPUT TYPE TY_OUTPUT,
GT_TOTAL TYPE TABLE OF TY_TOTAL,
GS_TOTAL TYPE TY_TOTAL,
GT_TEMP TYPE TABLE OF TY_TOTAL,
GS_TEMP TYPE TY_TOTAL,
GT_TEMP1 TYPE TABLE OF TY_TOTAL,
GS_TEMP1 TYPE TY_TOTAL,
GT_TEMP2 TYPE TABLE OF TY_TOTAL,
GS_TEMP2 TYPE TY_TOTAL,
GT_TEMP3 TYPE TABLE OF TY_TOTAL,
GS_TEMP3 TYPE TY_TOTAL,
GT_TEMP4 TYPE TABLE OF TY_TOTAL,
GS_TEMP4 TYPE TY_TOTAL,
GT_TEMP5 TYPE TABLE OF TY_TOTAL,
GS_TEMP5 TYPE TY_TOTAL,
GT_TEMP6 TYPE TABLE OF TY_TOTAL,
GS_TEMP6 TYPE TY_TOTAL,
GT_TMP1 TYPE TABLE OF TY_TMP1,
GS_TMP1 TYPE TY_TMP1,
GT_TMP2 TYPE TABLE OF TY_TMP2,
GS_TMP2 TYPE TY_TMP2,
GT_TMP3 TYPE TABLE OF TY_TMP3,
GS_TMP3 TYPE TY_TMP3,
GT_TMP4 TYPE TABLE OF TY_TMP4,
GS_TMP4 TYPE TY_TMP4,
GT_TMP5 TYPE TABLE OF TY_TMP5,
GS_TMP5 TYPE TY_TMP5,
GT_TMP6 TYPE TABLE OF TY_TMP6,
GS_TMP6 TYPE TY_TMP6,
GT_TMP7 TYPE TABLE OF TY_TMP7,
GS_TMP7 TYPE TY_TMP7,
GT_TMP8 TYPE TABLE OF TY_TMP8,
GS_TMP8 TYPE TY_TMP8.
DATA:
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_FIELD TYPE SLIS_T_FIELDCAT_ALV,
GS_FIELD LIKE LINE OF GT_FIELD.
DATA: G_FNAME TYPE RS38L_FNAM,
G_CONTROL TYPE SSFCTRLOP.
DATA: DATA_NUM TYPE I."统计数据总数
DEFINE M_ALV_FIELDCAT.
GS_FIELD-FIELDNAME = &1."字段名
GS_FIELD-OUTPUTLEN = &2."列宽
GS_FIELD-REPTEXT_DDIC = &3."列名
GS_FIELD-EDIT = &4."是否可编辑
GS_FIELD-CHECKBOX = &5."是否为复选框
GS_FIELD-REF_FIELDNAME = &6."参考字段
GS_FIELD-REF_TABNAME = &7."参考表
GS_FIELD-KEY = &8."主键
GS_FIELD-NO_ZERO = &9.
APPEND GS_FIELD TO GT_FIELD.
CLEAR GS_FIELD.
END-OF-DEFINITION.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:
MATNR FOR GS_OUTPUT-MATNR MODIF ID S1,
WERKS FOR GS_OUTPUT-WERKS MODIF ID S2,
LGORT FOR GS_OUTPUT-LGORT MODIF ID S3,
BUKRS FOR GS_OUTPUT-BUKRS MODIF ID S4.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS A1 AS CHECKBOX MODIF ID P1.
SELECTION-SCREEN COMMENT (10) TEXT-003 FOR FIELD A1.
PARAMETERS A2 AS CHECKBOX MODIF ID P2.
SELECTION-SCREEN COMMENT (10) TEXT-004 FOR FIELD A2.
PARAMETERS A3 AS CHECKBOX MODIF ID P3.
SELECTION-SCREEN COMMENT (10) TEXT-005 FOR FIELD A3.
PARAMETERS A4 AS CHECKBOX MODIF ID P1.
SELECTION-SCREEN COMMENT (10) TEXT-006 FOR FIELD A4.
PARAMETERS A5 AS CHECKBOX MODIF ID P2.
SELECTION-SCREEN COMMENT (10) TEXT-007 FOR FIELD A5.
PARAMETERS A6 AS CHECKBOX MODIF ID P3.
SELECTION-SCREEN COMMENT (10) TEXT-008 FOR FIELD A6.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.
转载于:https://my.oschina.net/lanzp/blog/188358