*&---------------------------------------------------------------------*
*& Report ZMMR32
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMMR32 .
TYPE-POOLS :SLIS .
TABLES :MARA ,VBAP .
DATA : LAYOUT TYPE SLIS_LAYOUT_ALV ,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV ,
W_REPID LIKE SY -REPID .
DATA :WA_SATNR LIKE MARA -SATNR .
DATA :ZTAB LIKE TABLE OF STPOX WITH HEADER LINE .
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT - 001 .
PARAMETERS :WERKS LIKE VBAP -WERKS OBLIGATORY ,
MATNR LIKE MARA -MATNR OBLIGATORY .
SELECTION-SCREEN : END OF BLOCK B1 .
INITIALIZATION .
START-OF-SELECTION .
PERFORM GETDATA .
PERFORM CATALOG .
PERFORM ALVSHOW .
END-OF-SELECTION .
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GETDATA .
SELECT SINGLE SATNR INTO WA_SATNR FROM MARA WHERE MATNR = MATNR .
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
* FTREL = ' '
* ALEKZ = ' '
* ALTVO = ' '
* AUFSW = ' '
* AUMGB = ' '
* AUMNG = 0
* AUSKZ = ' '
* AMIND = ' '
* BAGRP = ' '
* BEIKZ = ' '
* BESSL = ' '
* BGIXO = ' '
* BREMS = ' '
CAPID = 'PP01'
* CHLST = ' '
* COSPR = ' '
* CUOBJ = 000000000000000
* CUOVS = 0
* CUOLS = ' '
DATUV = SY -DATUM
* DELNL = ' '
* DRLDT = ' '
* EHNDL = ' '
EMENG = 1
* ERSKZ = ' '
* ERSSL = ' '
* FBSTP = ' '
* KNFBA = ' '
* KSBVO = ' '
* MBWLS = ' '
* MKTLS = 'X'
* MDMPS = ' '
MEHRS = 'X'
* MKMAT = ' '
* MMAPS = ' '
* SALWW = ' '
* SPLWW = ' '
* MMORY = ' '
MTNRV = WA_SATNR
* NLINK = ' '
* POSTP = ' '
* RNDKZ = ' '
* RVREL = ' '
* SANFR = ' '
* SANIN = ' '
* SANKA = ' '
* SANKO = ' '
* SANVS = ' '
* SCHGT = ' '
* STKKZ = ' '
* STLAL = ' '
* STLAN = ' '
* STPST = 0
* SVWVO = 'X'
WERKS = WERKS
* NORVL = ' '
* MDNOT = ' '
* PANOT = ' '
* QVERW = ' '
* VERID = ' '
* VRSVO = 'X'
* IMPORTING
* TOPMAT =
* DSTST =
TABLES
STB = ZTAB
* MATCAT =
* EXCEPTIONS
* ALT_NOT_FOUND = 1
* CALL_INVALID = 2
* MATERIAL_NOT_FOUND = 3
* MISSING_AUTHORIZATION = 4
* NO_BOM_FOUND = 5
* NO_PLANT_DATA = 6
* NO_SUITABLE_BOM_FOUND = 7
* CONVERSION_ERROR = 8
* OTHERS = 9
.
IF SY -SUBRC <> 0 .
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF .
ENDFORM . " GETDATA
*&---------------------------------------------------------------------*
*& Form CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CATALOG .
W_REPID = SY -REPID .
CLEAR IT_FIELDCAT .
DEFINE FIELDCATSET .
WA_FIELDCAT -FIELDNAME = &1 .
WA_FIELDCAT -SELTEXT_L = &2 .
WA_FIELDCAT -NO_ZERO = &3 .
WA_FIELDCAT -FIX_COLUMN = &4 .
APPEND WA_FIELDCAT TO IT_FIELDCAT .
END-OF-DEFINITION .
FIELDCATSET 'POSNR' '项目' 'X' '' .
FIELDCATSET 'IDNRK' '物料' 'X' '' .
FIELDCATSET 'OJTXP' '描述' 'X' '' .
FIELDCATSET 'MENGE' '数量' 'X' '' .
FIELDCATSET 'DATUV' '有效起始日期' 'X' '' .
FIELDCATSET 'DATUB' '有效至' 'X' '' .
FIELDCATSET 'AENNR' '更改编号' 'X' '' .
ENDFORM . " CATALOG
*&---------------------------------------------------------------------*
*& Form ALVSHOW
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ALVSHOW .
PERFORM LAYOUT_INIT USING LAYOUT .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
IS_LAYOUT = LAYOUT
IT_FIELDCAT = IT_FIELDCAT[]
* I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
TABLES
T_OUTTAB = ZTAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2 .
IF SY -SUBRC <> 0 .
MESSAGE ID SY -MSGID TYPE SY -MSGTY NUMBER SY -MSGNO WITH SY -MSGV1 SY -MSGV2 SY -MSGV4 SY -MSGV4 .
ENDIF .
ENDFORM . " ALVSHOW
*&---------------------------------------------------------------------*
*& Form LAYOUT_INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_P_LAYOUT text
*----------------------------------------------------------------------*
FORM LAYOUT_INIT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV .
P_LAYOUT -COLWIDTH_OPTIMIZE = 'X' .
ENDFORM . " LAYOUT_INIT
*& Report ZMMR32
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMMR32 .
TYPE-POOLS :SLIS .
TABLES :MARA ,VBAP .
DATA : LAYOUT TYPE SLIS_LAYOUT_ALV ,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV ,
W_REPID LIKE SY -REPID .
DATA :WA_SATNR LIKE MARA -SATNR .
DATA :ZTAB LIKE TABLE OF STPOX WITH HEADER LINE .
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT - 001 .
PARAMETERS :WERKS LIKE VBAP -WERKS OBLIGATORY ,
MATNR LIKE MARA -MATNR OBLIGATORY .
SELECTION-SCREEN : END OF BLOCK B1 .
INITIALIZATION .
START-OF-SELECTION .
PERFORM GETDATA .
PERFORM CATALOG .
PERFORM ALVSHOW .
END-OF-SELECTION .
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GETDATA .
SELECT SINGLE SATNR INTO WA_SATNR FROM MARA WHERE MATNR = MATNR .
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
* FTREL = ' '
* ALEKZ = ' '
* ALTVO = ' '
* AUFSW = ' '
* AUMGB = ' '
* AUMNG = 0
* AUSKZ = ' '
* AMIND = ' '
* BAGRP = ' '
* BEIKZ = ' '
* BESSL = ' '
* BGIXO = ' '
* BREMS = ' '
CAPID = 'PP01'
* CHLST = ' '
* COSPR = ' '
* CUOBJ = 000000000000000
* CUOVS = 0
* CUOLS = ' '
DATUV = SY -DATUM
* DELNL = ' '
* DRLDT = ' '
* EHNDL = ' '
EMENG = 1
* ERSKZ = ' '
* ERSSL = ' '
* FBSTP = ' '
* KNFBA = ' '
* KSBVO = ' '
* MBWLS = ' '
* MKTLS = 'X'
* MDMPS = ' '
MEHRS = 'X'
* MKMAT = ' '
* MMAPS = ' '
* SALWW = ' '
* SPLWW = ' '
* MMORY = ' '
MTNRV = WA_SATNR
* NLINK = ' '
* POSTP = ' '
* RNDKZ = ' '
* RVREL = ' '
* SANFR = ' '
* SANIN = ' '
* SANKA = ' '
* SANKO = ' '
* SANVS = ' '
* SCHGT = ' '
* STKKZ = ' '
* STLAL = ' '
* STLAN = ' '
* STPST = 0
* SVWVO = 'X'
WERKS = WERKS
* NORVL = ' '
* MDNOT = ' '
* PANOT = ' '
* QVERW = ' '
* VERID = ' '
* VRSVO = 'X'
* IMPORTING
* TOPMAT =
* DSTST =
TABLES
STB = ZTAB
* MATCAT =
* EXCEPTIONS
* ALT_NOT_FOUND = 1
* CALL_INVALID = 2
* MATERIAL_NOT_FOUND = 3
* MISSING_AUTHORIZATION = 4
* NO_BOM_FOUND = 5
* NO_PLANT_DATA = 6
* NO_SUITABLE_BOM_FOUND = 7
* CONVERSION_ERROR = 8
* OTHERS = 9
.
IF SY -SUBRC <> 0 .
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF .
ENDFORM . " GETDATA
*&---------------------------------------------------------------------*
*& Form CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CATALOG .
W_REPID = SY -REPID .
CLEAR IT_FIELDCAT .
DEFINE FIELDCATSET .
WA_FIELDCAT -FIELDNAME = &1 .
WA_FIELDCAT -SELTEXT_L = &2 .
WA_FIELDCAT -NO_ZERO = &3 .
WA_FIELDCAT -FIX_COLUMN = &4 .
APPEND WA_FIELDCAT TO IT_FIELDCAT .
END-OF-DEFINITION .
FIELDCATSET 'POSNR' '项目' 'X' '' .
FIELDCATSET 'IDNRK' '物料' 'X' '' .
FIELDCATSET 'OJTXP' '描述' 'X' '' .
FIELDCATSET 'MENGE' '数量' 'X' '' .
FIELDCATSET 'DATUV' '有效起始日期' 'X' '' .
FIELDCATSET 'DATUB' '有效至' 'X' '' .
FIELDCATSET 'AENNR' '更改编号' 'X' '' .
ENDFORM . " CATALOG
*&---------------------------------------------------------------------*
*& Form ALVSHOW
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ALVSHOW .
PERFORM LAYOUT_INIT USING LAYOUT .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
IS_LAYOUT = LAYOUT
IT_FIELDCAT = IT_FIELDCAT[]
* I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
TABLES
T_OUTTAB = ZTAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2 .
IF SY -SUBRC <> 0 .
MESSAGE ID SY -MSGID TYPE SY -MSGTY NUMBER SY -MSGNO WITH SY -MSGV1 SY -MSGV2 SY -MSGV4 SY -MSGV4 .
ENDIF .
ENDFORM . " ALVSHOW
*&---------------------------------------------------------------------*
*& Form LAYOUT_INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_P_LAYOUT text
*----------------------------------------------------------------------*
FORM LAYOUT_INIT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV .
P_LAYOUT -COLWIDTH_OPTIMIZE = 'X' .
ENDFORM . " LAYOUT_INIT