存货账龄分析报表(中)
为什么80%的码农都做不了架构师?>>>
*----------------------------------------------------------------------*
* INITIALIZATION *
*----------------------------------------------------------------------*
INITIALIZATION.PERFORM FRM_INITIALIZATION.
*----------------------------------------------------------------------*
* AT SELECTION-SCREEN OUTPUT *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.PERFORM FRM_MODIFY_SCREEN.
*----------------------------------------------------------------------*
* AT SELECTION-SCREEN *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.PERFORM FRM_CHECK_INPUT.
*----------------------------------------------------------------------*
* START-OF-SELECTION *
*----------------------------------------------------------------------*
START-OF-SELECTION.PERFORM FRM_RETRIVE_DATA.PERFORM FRM_PROCESS_DATA.
*----------------------------------------------------------------------*
* END-OF-SELECTION *
*----------------------------------------------------------------------*
END-OF-SELECTION.PERFORM FRM_OUTPUT.
*&---------------------------------------------------------------------*
*& Form frm_initialization
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* DO NOTHING.
*----------------------------------------------------------------------*
FORM FRM_INITIALIZATION.
ENDFORM."frm_initialization.
*&---------------------------------------------------------------------*
*& Form frm_modify_screen.
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* FILL LIST BOX--->Do Nothing...
*----------------------------------------------------------------------*
FORM FRM_MODIFY_SCREEN.
* TYPE-POOLS:VRM.
*
* DATA: NAME TYPE VRM_ID,"名称
* LIST TYPE VRM_VALUES,"值
* VALUE LIKE LINE OF LIST."结构
*
* CLEAR LIST.
*
* DEFINE FILL_LIST.
* VALUE-KEY = &1.
* VALUE-TEXT = &2.
* APPEND VALUE TO LIST.
* END-OF-DEFINITION.
*
* FILL_LIST '0-30天' '0-30天'.
* FILL_LIST '31-60天' '31-60天'.
* FILL_LIST '61-90天' '61-90天'.
* FILL_LIST '91-180天' '91-180天'.
* FILL_LIST '181-360天' '181-360天'.
* FILL_LIST '361天以上' '361天以上'.
*
* CALL FUNCTION 'VRM_SET_VALUES'
* EXPORTING
* id = 'STKYR'
* values = LIST
* EXCEPTIONS
* ID_ILLEGAL_NAME = 1
* OTHERS = 2
* .
* IF sy-subrc <> 0.
* MESSAGE '程序初始化失败!请联系管理员。' TYPE 'E'.
* ENDIF.
ENDFORM."frm_modify_screen.
*&---------------------------------------------------------------------*
*& Form frm_check_input.
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* DOUBLE CHECK WERKS VALUE.
*----------------------------------------------------------------------*
FORM FRM_CHECK_INPUT.
* IF BUKRS IS INITIAL.
* MESSAGE '公司代码不能为空!' TYPE 'E'.
* LEAVE LIST-PROCESSING.
* ENDIF.
ENDFORM."frm_check_input
*&---------------------------------------------------------------------*
*& Form frm_retrive_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* DO NOTHING EITHER.
*----------------------------------------------------------------------*
FORM FRM_RETRIVE_DATA.SELECT A~BUKRS A~WERKS A~LGORT A~MATNR A~MENGE A~MEINS A~MBLNR B~MAKTX INTO CORRESPONDING FIELDS OF TABLE GT_TMP1FROM MSEG AS ALEFT JOIN MAKT AS B ON A~MATNR = B~MATNRWHERE A~MATNR IN MATNR AND A~WERKS IN WERKS AND A~LGORT IN LGORT AND A~BUKRS IN BUKRS AND A~SHKZG = 'S'.SELECT A~WERKS A~LGORT A~MATNR A~LABST A~INSME A~SPEME INTO CORRESPONDING FIELDS OF TABLE GT_TMP2FROM MARD AS AFOR ALL ENTRIES IN GT_TMP1WHERE A~MATNR = GT_TMP1-MATNR AND A~WERKS = GT_TMP1-WERKS AND A~LGORT = GT_TMP1-LGORT.SELECT A~WERKS A~LGORT A~MATNR A~PRLAB INTO CORRESPONDING FIELDS OF TABLE GT_TMP3FROM MSPR AS AFOR ALL ENTRIES IN GT_TMP1WHERE A~MATNR = GT_TMP1-MATNR AND A~WERKS = GT_TMP1-WERKS AND A~LGORT = GT_TMP1-LGORT.SELECT A~WERKS A~LGORT A~MATNR A~KALAB INTO CORRESPONDING FIELDS OF TABLE GT_TMP4FROM MSKA AS AFOR ALL ENTRIES IN GT_TMP1WHERE A~MATNR = GT_TMP1-MATNR AND A~WERKS = GT_TMP1-WERKS AND A~LGORT = GT_TMP1-LGORT.SELECT A~WERKS A~LGORT A~MATNR A~SLABS INTO CORRESPONDING FIELDS OF TABLE GT_TMP5FROM MKOL AS AFOR ALL ENTRIES IN GT_TMP1WHERE A~MATNR = GT_TMP1-MATNR AND A~WERKS = GT_TMP1-WERKS AND A~LGORT = GT_TMP1-LGORT.SELECT A~BUKRS A~WERKS A~LGORT A~MATNR A~MBLNR B~BUDAT INTO CORRESPONDING FIELDS OF TABLE GT_TMP6FROM MSEG AS AINNER JOIN MKPF AS B ON A~MBLNR = B~MBLNRFOR ALL ENTRIES IN GT_TMP1WHERE A~MATNR = GT_TMP1-MATNR AND A~WERKS = GT_TMP1-WERKS AND A~LGORT = GT_TMP1-LGORT AND A~BUKRS = GT_TMP1-BUKRS AND A~MBLNR = GT_TMP1-MBLNR.SELECT A~BUKRS A~WERKS A~LGORT A~MATNR A~MBLNR B~STPRS B~PEINH INTO CORRESPONDING FIELDS OF TABLE GT_TMP7FROM MSEG AS AINNER JOIN MBEW AS B ON A~WERKS = B~BWKEY AND A~MATNR = B~MATNRFOR ALL ENTRIES IN GT_TMP6WHERE A~MATNR = GT_TMP6-MATNR AND A~WERKS = GT_TMP6-WERKS AND A~LGORT = GT_TMP6-LGORT AND A~BUKRS = GT_TMP6-BUKRS AND A~MBLNR = GT_TMP6-MBLNR.SELECT A~WERKS A~MATNR A~LBLAB INTO CORRESPONDING FIELDS OF TABLE GT_TMP8FROM MSLB AS AFOR ALL ENTRIES IN GT_TMP1WHERE A~MATNR = GT_TMP1-MATNR AND A~WERKS = GT_TMP1-WERKS.CLEAR: GT_TEMP[],GS_TEMP.LOOP AT GT_TMP1 INTO GS_TMP1.GS_TEMP-BUKRS = GS_TMP1-BUKRS.GS_TEMP-WERKS = GS_TMP1-WERKS.GS_TEMP-LGORT = GS_TMP1-LGORT.GS_TEMP-MATNR = GS_TMP1-MATNR.GS_TEMP-MAKTX = GS_TMP1-MAKTX.GS_TEMP-MENGE = GS_TMP1-MENGE.GS_TEMP-MEINS = GS_TMP1-MEINS.READ TABLE GT_TMP2 INTO GS_TMP2 WITH KEY WERKS = GS_TMP1-WERKS LGORT = GS_TMP1-LGORT MATNR = GS_TMP1-MATNR.IF SY-SUBRC = 0.GS_TEMP-LABST = GS_TMP2-LABST.GS_TEMP-INSME = GS_TMP2-INSME.GS_TEMP-SPEME = GS_TMP2-SPEME.ENDIF.READ TABLE GT_TMP3 INTO GS_TMP3 WITH KEY WERKS = GS_TMP1-WERKS LGORT = GS_TMP1-LGORT MATNR = GS_TMP1-MATNR.IF SY-SUBRC = 0.GS_TEMP-PRLAB = GS_TMP3-PRLAB.ENDIF.READ TABLE GT_TMP4 INTO GS_TMP4 WITH KEY WERKS = GS_TMP1-WERKS LGORT = GS_TMP1-LGORT MATNR = GS_TMP1-MATNR.IF SY-SUBRC = 0.GS_TEMP-KALAB = GS_TMP4-KALAB.ENDIF.READ TABLE GT_TMP5 INTO GS_TMP5 WITH KEY WERKS = GS_TMP1-WERKS LGORT = GS_TMP1-LGORT MATNR = GS_TMP1-MATNR.IF SY-SUBRC = 0.GS_TEMP-SLABS = GS_TMP5-SLABS.ENDIF.READ TABLE GT_TMP6 INTO GS_TMP6 WITH KEY BUKRS = GS_TMP1-BUKRS WERKS = GS_TMP1-WERKS LGORT = GS_TMP1-LGORT MATNR = GS_TMP1-MATNR MBLNR = GS_TMP1-MBLNR.IF SY-SUBRC = 0.GS_TEMP-BUDAT = GS_TMP6-BUDAT.ENDIF.READ TABLE GT_TMP7 INTO GS_TMP7 WITH KEY BUKRS = GS_TMP1-BUKRS WERKS = GS_TMP1-WERKS LGORT = GS_TMP1-LGORT MATNR = GS_TMP1-MATNR MBLNR = GS_TMP1-MBLNR.IF SY-SUBRC = 0.GS_TEMP-STPRS = GS_TMP7-STPRS.GS_TEMP-PEINH = GS_TMP7-PEINH.ENDIF.READ TABLE GT_TMP8 INTO GS_TMP8 WITH KEY WERKS = GS_TMP1-WERKS MATNR = GS_TMP1-MATNR.IF SY-SUBRC = 0.GS_TEMP-LBLAB = GS_TMP8-LBLAB.ENDIF.APPEND GS_TEMP TO GT_TEMP.CLEAR GS_TEMP.ENDLOOP.LOOP AT GT_TEMP INTO GS_TEMP.APPEND GS_TEMP TO GT_TEMP1.APPEND GS_TEMP TO GT_TEMP2.APPEND GS_TEMP TO GT_TEMP3.APPEND GS_TEMP TO GT_TEMP4.APPEND GS_TEMP TO GT_TEMP5.APPEND GS_TEMP TO GT_TEMP6.ENDLOOP.LOOP AT GT_TEMP INTO GS_TEMP.MOVE-CORRESPONDING GS_TEMP TO GS_OUTPUT.COLLECT GS_OUTPUT INTO GT_OUTPUT.ENDLOOP.DATA: FIRSTDAY TYPE D,LASTDATE TYPE D.
*IF A1 IS INITIAL AND A2 IS INITIAL AND A3 IS INITIAL AND A4 IS INITIAL AND A5 IS INITIAL AND A6 IS INITIAL OR A6 = 'X'.A1 = 'X'.A2 = 'X'.A3 = 'X'.A4 = 'X'.A5 = 'X'.A6 = 'X'.ENDIF.DATA: T1 LIKE A1,T2 LIKE A2,T3 LIKE A3,T4 LIKE A4,T5 LIKE A5,T6 LIKE A6.T1 = A1.T2 = A2.T3 = A3.T4 = A4.T5 = A5.T6 = A6.IF A5 = 'X' AND A6 = ''.A1 = 'X'.A2 = 'X'.A3 = 'X'.A4 = 'X'.ENDIF.IF A4 = 'X' AND A5 = '' AND A6 = ''.A1 = 'X'.A2 = 'X'.A3 = 'X'.ENDIF.IF A3 = 'X'AND A4 = '' AND A5 = '' AND A6 = ''.A1 = 'X'.A2 = 'X'.ENDIF.IF A2 = 'X' AND A1 = ''.A1 = 'X'.ENDIF.DATA: STOCK1 TYPE I,STOCK2 TYPE I,STOCK3 TYPE I,STOCK4 TYPE I,STOCK5 TYPE I,CURRENT_STOCK TYPE I.TYPES:BEGIN OF TY_CURRENT_STOCK,BUKRS TYPE MSEG-BUKRS,"公司代码WERKS TYPE MSEG-WERKS,"工厂LGORT TYPE MSEG-LGORT,"库位(库存地点)MATNR TYPE MSEG-MATNR,"物料号MAKTX TYPE MAKT-MAKTX,"物料描述STOCK TYPE I,MENGE1 TYPE MSEG-MENGE,MENGE2 TYPE MSEG-MENGE,MENGE3 TYPE MSEG-MENGE,MENGE4 TYPE MSEG-MENGE,MENGE5 TYPE MSEG-MENGE,MENGE6 TYPE MSEG-MENGE,END OF TY_CURRENT_STOCK.DATA: GT_STOCK TYPE TABLE OF TY_CURRENT_STOCK,GS_STOCK TYPE TY_CURRENT_STOCK.
转载于:https://my.oschina.net/lanzp/blog/188359
存货账龄分析报表(中)相关推荐
- 存货账龄分析报表(上)
为什么80%的码农都做不了架构师?>>> 其实,对于库龄计算,其实并不复杂,关于网上的FIFO,还不是很理解,但是,我跟同事理清了一下思路,把库龄分析的整个流程简单化:1.确定 ...
- 存货账龄分析报表(中四)
为什么80%的码农都做不了架构师?>>> IF A5 = 'X'. "180-360天CLEAR: GS_TOTAL,GT_TOTAL[].CALL FUNCTION ...
- 存货账龄分析报表(中三)
为什么80%的码农都做不了架构师?>>> IF A3 = 'X'. "60-90天CLEAR: GS_TOTAL,GT_TOTAL[].CALL FUNCTION ' ...
- 存货账龄分析报表(下)
为什么80%的码农都做不了架构师?>>> *&------------------------------------------------------------- ...
- 水晶报表中对某一栏位值进行处理_合并报表——非同一控制下的企业合并amp;同一控制下的企业合并...
[写在前面] 长期股权投资企业的一种投资行为,投资方通过该行为享有被投资单位的股利分配.净利润等投资收益,处理的是母公司(投资方)的个别财务报表. 只有控股合并才需要编制合并报表,意味着后续计量采用的 ...
- SAP 谈谈存货分析报表
MM物料管理模块中涉及存货.而对存货进行报表分析显得尤为重要.对于存货分析,SAP提供了一大堆MC.*的报表,但基本无企业用,因为大部分是基于信息结构,非常不准确!也很难利用起来.下面是库存分析中的一 ...
- c语言向表格内存入数据,怎么实现横向到存入多个单元格,在列数固定的报表中逐格横向填充数据并折行...
在很多需要打印的报表中,受限于纸张的大小,往往会限制行数或者固定列数.我们在<单据类报表的制作>一文中,曾经介绍了限制了行数的情况如何实现,现在,我们再来看一下,在固定了列数的情况下,如果 ...
- 填报表中也可以添加 html 事件
在实际的项目开发中,填报表的应用十分广泛. 多数情况下,填报表会作为整个项目的一部分配合需求灵活使用,但有时也会受大项目环境的影响,产生一些特别的要求.比如,通常报表单元格的数据类型大多是文本,有时却 ...
- 使用ROW_NUMBER 和partition by 解决报表中的查询问题
在报表中遇到一个查询问题: 原始数据如下: Id cust_id call_date call_result 1 1 2012-03-15 09:00:00 fail 2 1 2012-03-15 0 ...
最新文章
- 点击图片放大,再点击缩小的代码段
- cad2014卡顿的解决方法_微软Office打开文件卡顿、缓慢的解决方法
- 以IP段作为监听地址
- System.Net.Cookie
- javascript indexOf函数
- Eclipse去除js(JavaScript)验证错误
- 互联网新人最热门去处:前三名毫无意外!
- php不能连接远程mysql_无法远程连接mysql怎么办
- games101 材质与外观
- java-for循环9的倍数(基础)
- 多元函数中的偏导数全导数以及隐函数
- Arduino制作跑马灯
- 更新xcode至12.3,编译报错Building for iOS, but the linked and embedded framework ‘xxx.framework’ was buil...
- js中数组的几种循环方式
- 经典机器学习算法:高斯判别分析GDA
- UVa 321 The New Villa,2B青年怒找卧室
- 48亿卖给苏宁!又一全球巨头败走中国
- Dell灵越7580拆机照片
- 酷开系统,打造更多可能
- 卫星星座介绍及系统参数:Starlink星座