生产欠料订单
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
INCLUDE ZBCDWI000.
INCLUDE <ICON>.
TYPE-POOLS: SLIS.
*----------------------------------------------------------------------*
* Constants *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Data dictionary tables and structures *
*----------------------------------------------------------------------*
TABLES: AFKO. " Order header data PP orders
TABLES: AFPO. " Order item
TABLES: EKKO. " Purchasing Document Header
TABLES: EKPO. " Purchasing Document Item
TABLES: JEST. " Individual Object Status
TABLES: MARA. " General Material Data
TABLES: MARC. " Plant Data for Material
TABLES: MARD. " Storage Location Data for Material
TABLES: MAKT. " Material Descriptions
TABLES: MAST. " Material to BOM Link
TABLES: MBEW. " Material Valuation
TABLES: MKOL. " Special Stocks from Vendor
TABLES: MSLB. " Special Stocks with Vendor
TABLES: PLAF. " Planned order
TABLES: RESB. " Reservation/dependent requirements
TABLES: T001W. " Plants/Branches
TABLES: TJ02T. " System status texts
TABLES: T001. " Company Codes
TABLES: T001K. " Valuation area
TABLES: T024W. " Valid Purchasing Organizations for Plant
TABLES: T399D. " Control Parameters for MRP
TABLES: T438A. " MRP Type
TABLES: T438M. " Control Parameter for MRP -Material Level-
TABLES: T450N. " Transaction Control MRP With Object
TABLES: VBEP . " Sales Document: Schedule Line Data
TABLES: CAUFV. " Production order table
TABLES: MSEG. " Material doc. detail
*----------------------------------------------------------------------*
* Select options and parameters *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-F01.
SELECT-OPTIONS: S_AUFNR FOR RESB-AUFNR MEMORY ID ANR."MATCHCODE OBJECT ORDER. SELECT-OPTIONS: S_MATNR FOR RESB-MATNR MATCHCODE OBJECT MAT MEMORY ID MAT. SELECT-OPTIONS: S_MTART FOR MARA-MTART DEFAULT'ROH'.
SELECT-OPTIONS: S_BDTER FOR RESB-BDTER DEFAULT SY-DATUM.
SELECT-OPTIONS: S_WERKS FOR T001W-WERKS DEFAULT'2001' OBLIGATORY.
*PARAMETERS : P_WERKS LIKE T001W-WERKS DEFAULT '2001' OBLIGATORY.
SELECT-OPTIONS: S_DISPO FOR MARC-DISPO MEMORY ID DGR.
SELECT-OPTIONS: S_EKGRP FOR MARC-EKGRP MEMORY ID EKG.
SELECT-OPTIONS: S_EBELN FOR EKPO-EBELN .
SELECT-OPTIONS: S_EBELP FOR EKPO-EBELP .
PARAMETERS : P_EXOPN AS CHECKBOX DEFAULT'X'. "Exclude zero open qty.
PARAMETERS : P_OUTST AS CHECKBOX DEFAULT'X'.
SELECTION-SCREEN SKIP .
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : P_PRDCHK RADIOBUTTON GROUP GRP.
SELECTION-SCREEN COMMENT04(15) TEXT-AB1.
PARAMETERS : P_POCHK RADIOBUTTON GROUP GRP.
SELECTION-SCREEN COMMENT22(16) TEXT-AB2.
PARAMETERS : P_PLAN RADIOBUTTON GROUP GRP.
SELECTION-SCREEN COMMENT41(20) TEXT-AB4.
PARAMETERS : P_ALL RADIOBUTTON GROUP GRP.
SELECTION-SCREEN COMMENT64(17) TEXT-AB3.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : P_DET RADIOBUTTON GROUP GRP DEFAULT'X'.
SELECTION-SCREEN COMMENT04(40) TEXT-AB5.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-F02. SELECTION-SCREEN END OF BLOCK B2.
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-F03. SELECTION-SCREEN END OF BLOCK B3.
SELECTION-SCREEN BEGIN OF BLOCK B4 WITH FRAME TITLE TEXT-F04. PARAMETERS : P_DAT00 LIKE MDEZ-DAT00 OBLIGATORY DEFAULT SY-DATUM. PARAMETERS : P_DAY RADIOBUTTON GROUP RAD1.
PARAMETERS : P_WEEK RADIOBUTTON GROUP RAD1 DEFAULT'X'. PARAMETERS : P_MNTH RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN END OF BLOCK B4.
SELECTION-SCREEN BEGIN OF BLOCK B5 WITH FRAME TITLE TEXT-F05. PARAMETERS : P_COLT RADIOBUTTON GROUP DPL DEFAULT'X' . PARAMETERS : P_DETL RADIOBUTTON GROUP DPL.
SELECTION-SCREEN END OF BLOCK B5.
*--------------------------------------------------------------------*
* Constants *
*--------------------------------------------------------------------*
CONSTANTS: TRUE(001) TYPE C VALUE'0'.
CONSTANTS: FALSE(001) TYPE C VALUE'1'.
CONSTANTS: D_INTER TYPE I VALUE'69'.
CONSTANTS: TCODE LIKE T450N-TCODE VALUE'MD04'.
CONSTANTS: ANZML(002) TYPE C VALUE'B7' .
CONSTANTS: LFRML(002) TYPE C VALUE'L7' .
CONSTANTS: CHAR1(001) TYPE C VALUE'1' .
CONSTANTS: XFLAG(001) TYPE C VALUE'X' .
*----------------------------------------------------------------------*
* Internal tables and field strings *
*----------------------------------------------------------------------*
TYPES: BEGIN OF WTAB_TYPE, "
MATNR LIKE MARA-MATNR, " Material Number
MAKTX LIKE MAKT-MAKTX, " Material description
WERKS LIKE MARD-WERKS, " Plant
DAT00 LIKE MDEZ-DAT00, " Date
OSQTY LIKE MDEZ-MNG01, " WO/PO oustanding qty END OF WTAB_TYPE.
TYPES: BEGIN OF ITAB_TYPE,
MATNR LIKE MARA-MATNR, " Material Number
MAKTX LIKE MAKT-MAKTX, " Material description
WERKS LIKE MARD-WERKS, " Plant
BACK_LOGQTY LIKE MDEZ-MNG01, " Backlog qty
OSQTY01 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY02 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY03 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY04 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY05 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY06 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY07 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY08 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY09 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY10 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY11 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY12 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY13 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY14 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY15 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY16 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY17 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY18 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY19 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY20 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY21 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY22 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY23 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY24 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY25 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY26 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY27 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY28 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY29 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY30 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OSQTY31 LIKE MDEZ-MNG01, " WO/PO oustanding qty
OVER_QTY LIKE MDEZ-MNG01, " Over qty
ICON(004),
SELK(001),
END OF ITAB_TYPE.
DATA : PTAB TYPE ITAB_TYPE OCCURS0WITH HEADER LINE. DATA : WTAB TYPE WTAB_TYPE OCCURS0WITH HEADER LINE. DATA: BEGIN OF MTAB OCCURS0.
DATA: MATNR LIKE MARA-MATNR.
DATA: MAKTX LIKE MAKT-MAKTX.
DATA: WERKS LIKE MARC-WERKS.
DATA: LABST LIKE MARD-LABST . " Standard Stock
DATA: UMLME LIKE MARD-UMLME.
DATA: INSME LIKE MARD-INSME. " Stock in Quality Inspection DATA: SLABS LIKE MKOL-SLABS.
DATA: LBLAB LIKE MSLB-LBLAB . " Valuated Unrestricted-Use Stock DATA: AVASTK LIKE MARD-LABST. " Available Stock
DATA: END OF MTAB.
DATA: BEGIN OF I_RESB OCCURS0 .
INCLUDE STRUCTURE RESB .
DATA: SELK(001). " Selected Fields
DATA: ICON(004).
DATA: END OF I_RESB .
DATA: BEGIN OF ITAB OCCURS0 .
INCLUDE STRUCTURE RESB .
DATA: MAKTX LIKE MAKT-MAKTX. " Component description DATA: MTART LIKE MARA-MTART. " Material Type
DATA: OPNQTY LIKE RESB-BDMNG. " Qty Open
DATA: SHORTAGE LIKE RESB-ENMNG. " Material Shortage
DATA: AVASTK LIKE MARD-LABST. " Available Stock
DATA: XMENG LIKE RESB-ENMNG. " Outstanding PO
DATA: BDMNG1 LIKE RESB-BDMNG. " Total Req'd Qty => Reservation DATA: LABST LIKE MARD-LABST. " Standard Stock
DATA: UMLME LIKE MARD-UMLME. " Stock in transfer
DATA: INSME LIKE MARD-INSME. " Stock in Quality Inspection DATA: SLABS LIKE MKOL-SLABS . " Consignment Stock
DATA: LBLAB LIKE MSLB-LBLAB . " Valuated Unrestricted-Use Stock DATA: BACK_LOGQTY LIKE MDEZ-MNG01." Backlog qty
DATA: OSQTY01 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY02 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY03 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY04 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY05 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY06 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY07 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY08 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY09 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY10 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY11 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY12 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY13 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY14 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY15 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY16 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY17 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY18 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY19 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY20 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY21 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY22 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OSQTY24 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY25 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY26 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY27 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY28 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY29 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY30 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY31 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OVER_QTY LIKE MDEZ-MNG01. " Over qty
DATA: SELK(001). " Selected Fields
DATA: ICON(004).
DATA: END OF ITAB .
* define internal table for collective
DATA: BEGIN OF COLLECT_ITAB OCCURS0 .
DATA: MATNR LIKE RESB-MATNR.
DATA: MAKTX LIKE MAKT-MAKTX. " Component description DATA: BDART LIKE RESB-BDART.
DATA: MTART LIKE MARA-MTART. " Material Type
DATA: EKGRP LIKE RESB-EKGRP.
DATA: MEINS LIKE RESB-MEINS.
DATA: WERKS LIKE RESB-WERKS.
DATA: BDMNG LIKE RESB-BDMNG.
DATA: ENMNG LIKE RESB-ENMNG.
DATA: OPNQTY LIKE RESB-BDMNG. " Qty Open
DATA: SHORTAGE LIKE RESB-ENMNG. " Material Shortage
DATA: AVASTK LIKE MARD-LABST. " Available Stock
DATA: XMENG LIKE RESB-ENMNG. " Outstanding PO
DATA: BDMNG1 LIKE RESB-BDMNG. " Total Req'd Qty => Reservation DATA: LABST LIKE MARD-LABST. " Standard Stock
DATA: UMLME LIKE MARD-UMLME. " Stock in transfer
DATA: INSME LIKE MARD-INSME. " Stock in Quality Inspection DATA: SLABS LIKE MKOL-SLABS . " Consignment Stock
DATA: LBLAB LIKE MSLB-LBLAB . " Valuated Unrestricted-Use Stock DATA: BACK_LOGQTY LIKE MDEZ-MNG01." Backlog qty
DATA: OSQTY01 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY02 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY03 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY04 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY05 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY06 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY07 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY08 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY09 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY10 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY11 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY12 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY13 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY14 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY15 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY16 LIKE MDEZ-MNG01. " WO/PO oustanding qty DATA: OSQTY17 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OSQTY19 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OSQTY20 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OSQTY21 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OSQTY22 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OSQTY23 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OSQTY24 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OSQTY25 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OSQTY26 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OSQTY27 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OSQTY28 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OSQTY29 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OSQTY30 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OSQTY31 LIKE MDEZ-MNG01. " WO/PO oustanding qty
DATA: OVER_QTY LIKE MDEZ-MNG01. " Over qty
DATA: SELK(001). " Selected Fields
DATA: ICON(004).
DATA: END OF COLLECT_ITAB .
DATA: BEGIN OF DATE_TAB OCCURS0."Column heading for date displaying DATA: DAT00 LIKE MDEZ-DAT00. "Date
DATA: WEEK LIKE SCAL-WEEK. "Week
DATA: MONTH LIKE S031-SPMON. "Month
DATA: END OF DATE_TAB.
DATA: IMARD LIKE MARD OCCURS0WITH HEADER LINE.
DATA: IMKOL LIKE MKOL OCCURS0WITH HEADER LINE.
*> bom explosion data store
DATA: I_BOM LIKE STPOX OCCURS0WITH HEADER LINE.
DATA: I_MATCAT LIKE CSCMAT OCCURS0WITH HEADER LINE. DATA: BEGIN OF DUMMY OCCURS1,
DUMMY,
END OF DUMMY.
DATA: MT61D LIKE MT61D,
CM61X LIKE CM61X,
CM61W LIKE CM61W,
CM61M LIKE CM61M,
MTCOM LIKE MTCOM,
MTCOR LIKE MTCOR,
MASEL LIKE MASEL.
DATA: MDKP LIKE MDKP,
MDKPS LIKE MDKP,
MDST LIKE MDST,
MDSTA LIKE MDSTA,
MDPSX LIKE MDPS OCCURS0WITH HEADER LINE,
MDEZX LIKE MDEZ OCCURS0WITH HEADER LINE,
MDSUX LIKE MDSU OCCURS0WITH HEADER LINE,
MDINX LIKE MDIN OCCURS0WITH HEADER LINE.
DATA: MDEZX_MLINE LIKE SY-TABIX,
MDSUX_MLINE LIKE SY-TABIX,
MDSUX_BLINE LIKE SY-TABIX.
*--> Tabelle der offenen Bestellungen
DATA: BEGIN OF XTAB OCCURS10,
WERKS LIKE EKPO-WERKS,
LGORT LIKE EKPO-LGORT,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MENGK LIKE EKPO-MENGE,
END OF XTAB.
*--> Kennzeichen Mengenabw. Stahl, Wirkst.
DATA: KZWSO LIKE MARA-KZWSM.
*--> Tabelle der Reservierungen
DATA: BEGIN OF XTAB1 OCCURS10, "Tabelle der Reservierungen
WERKS LIKE RESB-WERKS,
LGORT LIKE RESB-LGORT,
CHARG LIKE RESB-CHARG,
MATNR LIKE RESB-MATNR,
BDMNG LIKE RESB-BDMNG,
BDMNS LIKE RESB-BDMNG,
ERFME LIKE RESB-ERFME, "ALRK014884 SW
ERFMG LIKE RESB-ERFMG, "ALRK014884 SW END OF XTAB1.
*--> Hilfsfelder f榛?die Sammelanzeige aktuelle BBLs
DATA: BEGIN OF MATOV.
DATA: WERKS(004) TYPE C. "Werk aus dem Einstiegsbild
DATA: INITF(001) TYPE C. "Initialisierung wurde durchgef榛╮t DATA: DISVI(001) TYPE C. "Disponenten-Feinsel. sichtbar
DATA: LIFVI(001) TYPE C. "Lieferanten-Feinsel. sichtbar
DATA: FLIVI(001) TYPE C. "Fert.Linien-Feinsel. sichtbar
DATA: MODUS(001) TYPE C. "Materialdaten Ermittelungsmodus DATA: ERROR(001) TYPE C. "Fehler beim Ermitteln ABBL
DATA: DSPER(001) TYPE C. "Ausgabe von Fehlern: 'X', wenn ja DATA: REFRE(001) TYPE C. "Auffrischmodus f榛?die ABBL DATA: END OF MATOV.
* data declaration for times recorded
DATA: V_TIMES TYPE P.
DATA: S_REPID LIKE SY-REPID,
ST_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER."page header DATA: ST_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "table col name ST_LAYOUT TYPE SLIS_LAYOUT_ALV, "layoutsetting
ST_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV,
ST_EVENTS TYPE SLIS_T_EVENT, "event header
* s_default(001) type c,
* s_exit(001) type c,
* st_variant like disvariant,
CODE LIKE DISVARIANT-HANDLE,
S_VARIANT LIKE DISVARIANT,
S_STATUS TYPE SLIS_FORMNAME VALUE'STANDARD_ST01',
S_STATUS_CP TYPE SLIS_FORMNAME VALUE'STANDARD_ST02',
S_USER_COMMAND TYPE SLIS_FORMNAME VALUE'USER_COMMAND-ALV', S_USER_COMM_SO TYPE SLIS_FORMNAME VALUE'USER_COMM_SO-ALV', S_USER_COMM_CP TYPE SLIS_FORMNAME VALUE'USER_COMM_CP-ALV', S_USER_COMDTL TYPE SLIS_FORMNAME VALUE'USER_COMDTL-ALV'. DATA : BEGIN OF EXTAB OCCURS0,
FCODE LIKE RSMPE-FUNC.
DATA : END OF EXTAB.
DATA : TAB TYPE SLIS_T_EXTAB.
RANGES: XBDART FOR RESB-BDART .
DATA : BEGIN OF BOM_MAT OCCURS0 .
DATA : MATNR LIKE MARC-MATNR .
DATA : WERKS LIKE MARC-WERKS .
DATA : END OF BOM_MAT .
DATA: TOPMAT LIKE MC29S OCCURS0WITH HEADER LINE .
DATA: WULTB LIKE STPOV OCCURS0WITH HEADER LINE .
DATA: EQUICAT LIKE CSCEQUI OCCURS0WITH HEADER LINE .
DATA: KNDCAT LIKE CSCKND OCCURS0WITH HEADER LINE .
DATA: MATCAT LIKE CSCMAT OCCURS0WITH HEADER LINE .
DATA: STDCAT LIKE CSCSTD OCCURS0WITH HEADER LINE .
DATA: TPLCAT LIKE CSCTPL OCCURS0WITH HEADER LINE .
DATA: CSCMAT LIKE CSCMAT OCCURS0WITH HEADER LINE .
DATA: BEGIN OF SO_ITAB OCCURS0,
WERKS LIKE VBAP-WERKS, " PLANT
VBELN LIKE VBAK-VBELN, " DOCUMENT
POSNR LIKE VBAP-POSNR, " POSITION
BSTNK LIKE VBAK-BSTNK, " Customer PO no
VGBEL LIKE VBAP-VGBEL, " QUOTATION
VGPOS LIKE VBAP-VGPOS, " POSITION
KUNNR LIKE VBAK-KUNNR, " CUSTOMER
NAME1 LIKE KNA1-NAME1, " CUSTOMER NAME
MATNR LIKE VBAP-MATNR, " MATERIAL
STLAN LIKE MAST-STLAN, " BOM USAGE
MAKTX LIKE MAKT-MAKTX, " DESCRIPTION
ETTYP LIKE VBEP-ETTYP, " MRP
KWMENG LIKE VBAP-KWMENG, " ORDER QTY
BMENG LIKE VBEP-BMENG, " CONFIRMED QTY
SHIPPED LIKE VBAP-KWMENG, " SHIPPED QTY
OUT_QTY LIKE VBAP-KWMENG, " OUTSTANDING QTY
VRKME LIKE VBEP-VRKME, " UNIT
EDATU LIKE VBEP-EDATU, " NEXT DELIVERY DATE
VKORG LIKE VBAK-VKORG, " SALES ORG.
VTWEG LIKE VBAK-VTWEG, " DIS. CHANNEL
AUDAT LIKE VBAK-AUDAT, " DOCUMENT DATE
VDATU LIKE VBAK-VDATU, " DELIVERY DATE
VKBUR LIKE VBAK-VKBUR, " SALES OFFICE
VSTEL LIKE VBAP-VSTEL, " SHIPPING POINT
IHREZ LIKE VBAK-IHREZ,
NAME2 LIKE KNA1-NAME1,
SELK(001).
DATA: END OF SO_ITAB .
DATA: L_VBELN LIKE VBAK-VBELN .
DATA: TMP_VBTYP LIKE VBAK-VBTYP. " DOCUMENT CATEGORY
DATA: VBFA_ITAB LIKE VBFA OCCURS0WITH HEADER LINE. "get_ship_info DATA: VBFA_ITAB_A LIKE VBFA OCCURS0WITH HEADER LINE. "get_ship_info *----------------------------------------------------------------------*
* Global program variables *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* initialization .
*----------------------------------------------------------------------*
INITIALIZATION .
REFRESH: DATE_TAB, DUMMY, ITAB .
CLEAR : DATE_TAB, DUMMY, ITAB .
S_REPID = SY-REPID.
*----------------------------------------------------------------------*
* At Selection-screen *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
*----------------------------------------------------------------------*
* Start-of-selection *
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM DATE_RANGE_BUILD .
PERFORM PREPARE_ALV_FIELDS.
PERFORM EXTRACT_DATA .
PERFORM GET_STOCK_LIST .
PERFORM ITAB_BUILD.
PERFORM DISPLAY_ALV_RESULT .
*----------------------------------------------------------------------*
* End-of-selection *
*----------------------------------------------------------------------*
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form PREPARE_ALV_FIELDS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PREPARE_ALV_FIELDS .
DATA:FLDNAME(007) TYPE C.
DATA:V_DATEFLD(015) TYPE C.
DATA:COUNT_NO(002) TYPE N.
CLEAR : G_ALV_FIELDCAT .
IF NOT P_COLT IS INITIAL .
PERFORM SET_ALV_FIELDS USING'MATNR''COLLECT_ITAB'''TEXT-C10. PERFORM SET_ALV_FIELDS USING'MAKTX''COLLECT_ITAB'''TEXT-B03. PERFORM SET_ALV_FIELDS USING'MTART''COLLECT_ITAB'''TEXT-C32. PERFORM SET_ALV_FIELDS USING'BDART''COLLECT_ITAB'''TEXT-C33. PERFORM SET_ALV_FIELDS USING'EKGRP''COLLECT_ITAB'''TEXT-C02. PERFORM SET_ALV_FIELDS USING'WERKS''COLLECT_ITAB'''TEXT-C31. PERFORM SET_ALV_FIELDS USING'BDMNG''COLLECT_ITAB'''TEXT-C12. PERFORM SET_ALV_FIELDS USING'ENMNG''COLLECT_ITAB'''TEXT-C13. PERFORM SET_ALV_FIELDS USING'MEINS''COLLECT_ITAB'''TEXT-C11. PERFORM SET_ALV_FIELDS USING'OPNQTY''COLLECT_ITAB'''TEXT-C14. PERFORM SET_ALV_FIELDS USING'AVASTK''COLLECT_ITAB'''TEXT-C19. PERFORM SET_ALV_FIELDS USING'ICON''COLLECT_ITAB'''TEXT-C27. PERFORM SET_ALV_FIELDS_SP USING'SHORTAGE''COLLECT_ITAB'''TEXT-C20 'X'. PERFORM SET_ALV_FIELDS USING'LABST''COLLECT_ITAB'''TEXT-C15. PERFORM SET_ALV_FIELDS USING'SLABS''COLLECT_ITAB'''TEXT-C24. PERFORM SET_ALV_FIELDS USING'UMLME''COLLECT_ITAB'''TEXT-C16. PERFORM SET_ALV_FIELDS USING'INSME''COLLECT_ITAB'''TEXT-C17. PERFORM SET_ALV_FIELDS USING'LBLAB''COLLECT_ITAB'''TEXT-C34. PERFORM SET_ALV_FIELDS USING'XMENG''COLLECT_ITAB'''TEXT-C18. PERFORM SET_ALV_FIELDS USING'BDMNG1''COLLECT_ITAB'''TEXT-C21. ELSE.
PERFORM SET_ALV_FIELDS USING'MATNR''ITAB'''TEXT-C10.
PERFORM SET_ALV_FIELDS USING'MAKTX''ITAB'''TEXT-B03.
IF NOT P_ALL IS INITIAL .
PERFORM SET_ALV_FIELDS USING'AUFNR''ITAB'''TEXT-C05.
PERFORM SET_ALV_FIELDS USING'EBELN''ITAB'''TEXT-B14.
PERFORM SET_ALV_FIELDS USING'EBELP''ITAB'''TEXT-B15.
PERFORM SET_ALV_FIELDS USING'EBELE''ITAB'''TEXT-B16.
ELSEIF NOT P_POCHK IS INITIAL .
PERFORM SET_ALV_FIELDS USING'EBELN''ITAB'''TEXT-B14.
PERFORM SET_ALV_FIELDS USING'EBELP''ITAB'''TEXT-B15.
PERFORM SET_ALV_FIELDS USING'EBELE''ITAB'''TEXT-B16.
ELSEIF NOT P_PRDCHK IS INITIAL .
PERFORM SET_ALV_FIELDS USING'AUFNR''ITAB'''TEXT-C05.
ELSEIF NOT P_DET IS INITIAL .
PERFORM SET_ALV_FIELDS USING'EBELN''ITAB'''TEXT-B14.
PERFORM SET_ALV_FIELDS USING'EBELP''ITAB'''TEXT-B15.
PERFORM SET_ALV_FIELDS USING'EBELE''ITAB'''TEXT-B16.
PERFORM SET_ALV_FIELDS USING'AUFNR''ITAB'''TEXT-C05.
ENDIF .
PERFORM SET_ALV_FIELDS USING'BDART''ITAB'''TEXT-C33.
PERFORM SET_ALV_FIELDS USING'MTART''ITAB'''TEXT-C32.
PERFORM SET_ALV_FIELDS USING'EKGRP''ITAB'''TEXT-C02.
PERFORM SET_ALV_FIELDS USING'BAUGR''ITAB'''TEXT-C01.
PERFORM SET_ALV_FIELDS USING'BDTER''ITAB'''TEXT-C06.
PERFORM SET_ALV_FIELDS USING'WERKS''ITAB'''TEXT-C31.
PERFORM SET_ALV_FIELDS USING'BDMNG''ITAB'''TEXT-C12.
PERFORM SET_ALV_FIELDS USING'ENMNG''ITAB'''TEXT-C13.
PERFORM SET_ALV_FIELDS USING'MEINS''ITAB'''TEXT-C11.
PERFORM SET_ALV_FIELDS USING'OPNQTY''ITAB'''TEXT-C14.
PERFORM SET_ALV_FIELDS USING'AVASTK''ITAB'''TEXT-C19.
PERFORM SET_ALV_FIELDS USING'ICON''ITAB'''TEXT-C27.
PERFORM SET_ALV_FIELDS_SP USING'SHORTAGE''ITAB'''TEXT-C20 'X'.
PERFORM SET_ALV_FIELDS USING'LABST''ITAB'''TEXT-C15.
PERFORM SET_ALV_FIELDS USING'SLABS''ITAB'''TEXT-C24.
PERFORM SET_ALV_FIELDS USING'UMLME''ITAB'''TEXT-C16.
PERFORM SET_ALV_FIELDS USING'INSME''ITAB'''TEXT-C17.
PERFORM SET_ALV_FIELDS USING'LBLAB''ITAB'''TEXT-C34.
PERFORM SET_ALV_FIELDS USING'XMENG''ITAB'''TEXT-C18.
PERFORM SET_ALV_FIELDS USING'BDMNG1''ITAB'''TEXT-C21.
ENDIF .
IF P_DAY = 'X'.
LOOP AT DATE_TAB.
COUNT_NO = SY-TABIX.
CONCATENATE'OSQTY' COUNT_NO INTO FLDNAME.
WRITE DATE_TAB-DAT00 TO V_DATEFLD.
IF NOT P_COLT IS INITIAL .
PERFORM SET_ALV_FIELDS USING FLDNAME 'COLLECT_ITAB''' V_DATEFLD .
ELSE.
PERFORM SET_ALV_FIELDS USING FLDNAME 'ITAB''' V_DATEFLD .
ENDIF .
ENDLOOP .
ELSEIF P_WEEK = 'X'.
LOOP AT DATE_TAB.
COUNT_NO = SY-TABIX.
CONCATENATE'OSQTY' COUNT_NO INTO FLDNAME.
CONCATENATE'W' DATE_TAB-WEEK+4(2) INTO V_DATEFLD
SEPARATED BY SPACE.
CONCATENATE V_DATEFLD '/' DATE_TAB-WEEK(4) INTO V_DATEFLD.
IF NOT P_COLT IS INITIAL .
PERFORM SET_ALV_FIELDS USING FLDNAME 'COLLECT_ITAB''' V_DATEFLD .
ELSE.
PERFORM SET_ALV_FIELDS USING FLDNAME 'ITAB''' V_DATEFLD .
ENDIF .
ENDLOOP .
ELSEIF P_MNTH = 'X'.
LOOP AT DATE_TAB.
COUNT_NO = SY-TABIX.
CONCATENATE'OSQTY' COUNT_NO INTO FLDNAME.
CONCATENATE'M' DATE_TAB-MONTH+4(2) INTO V_DATEFLD SEPARATED BY SPACE.
CONCATENATE V_DATEFLD '/' DATE_TAB-MONTH(4) INTO V_DATEFLD.
IF NOT P_COLT IS INITIAL .
PERFORM SET_ALV_FIELDS USING FLDNAME 'COLLECT_ITAB''' V_DATEFLD .
ELSE.
PERFORM SET_ALV_FIELDS USING FLDNAME 'ITAB''' V_DATEFLD .
ENDIF .
ENDLOOP .
ENDIF.
IF NOT P_COLT IS INITIAL .
PERFORM SET_ALV_FIELDS USING'BACK_LOGQTY''COLLECT_ITAB'''TEXT-C25. PERFORM SET_ALV_FIELDS USING'OVER_QTY''COLLECT_ITAB'''TEXT-C26. ELSE.
PERFORM SET_ALV_FIELDS USING'BACK_LOGQTY''ITAB'''TEXT-C25. PERFORM SET_ALV_FIELDS USING'OVER_QTY''ITAB'''TEXT-C26.
ENDIF .
PERFORM LAYOUT_BUILD_A USING G_ALV_LAYOUT 'SHORTAGE'. ENDFORM. " PREPARE_ALV_FIELDS
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV_RESULT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV_RESULT .
IF NOT P_COLT IS INITIAL .
CALL FUNCTION'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-CPROG
IS_LAYOUT = G_ALV_LAYOUT
* i_callback_html_top_of_page = 'ALV_TOP_OF_PAGE'
I_CALLBACK_PF_STATUS_SET = S_STATUS
I_DEFAULT = 'X'
I_SAVE = 'X'
I_CALLBACK_USER_COMMAND = S_USER_COMMAND
IT_FIELDCAT = G_ALV_FIELDCAT[]
IT_EVENTS = G_ALV_EVENT
TABLES
T_OUTTAB = COLLECT_ITAB[].
ELSE.
CALL FUNCTION'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-CPROG
IS_LAYOUT = G_ALV_LAYOUT
* i_callback_html_top_of_page = 'ALV_TOP_OF_PAGE'
I_CALLBACK_PF_STATUS_SET = S_STATUS。