REPORT Z_KEVIN_ADV_BDC.
TABLES: MARA,MARC,MAKT.
TYPE-POOLS: SLIS.
DATA FIELDCAT TYPE SLIS_FIELDCAT_ALV OCCURS 0 WITH HEADER LINE.
太阳系中最大的行星是DATA: WT_LAYOUT TYPE SLIS_LAYOUT_ALV,
WT_EVENTS TYPE SLIS_T_EVENT.
DATA: WS_EVENTS LIKE LINE OF WT_EVENTS.
DATA: G_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMANDS'. "alv duoble mou.
DATA: BEGIN OF ITAB OCCURS 1,
DGLVL LIKE STPOX_ALV-DGLVL, "展开层(格式化的)
POSNR LIKE STPOX_ALV-POSNR, "BOM 项目号
MATNR LIKE MARA-MATNR, "物料号
EAN11 LIKE MARA-EAN11, "国际文件号(EAN/UPC)
MAKTX LIKE MAKT-MAKTX, "物料描述
MNGKO LIKE STPOX_ALV-MNGKO, "组件数量
MEINS LIKE STPOX_ALV-MEINS, "单位
MTART LIKE STPOX_ALV-MTART, "物料类型
MATKL LIKE STPOX_ALV-MATKL, "物料组
SOBMX LIKE STPOX_ALV-SOBMX, "特殊采购类型
POTX1 LIKE STPOX_ALV-POTX1, "BOM 项目文本
END OF ITAB.
DATA: BEGIN OF MITAB OCCURS 1,
MATNR LIKE MARA-MATNR,胜利英语
EAN11 LIKE MARA-EAN11,
MAKTX LIKE MAKT-MAKTX,
END OF MITAB.
SELECTION-SCREEN:BEGIN OF BLOCK B1 WITH FRAME.接力作文
PARAMETERS:PM_WERKS LIKE MARC-WERKS OBLIGATORY MEMORY ID WRK DEFAULT 1000.
SELECT-OPTIONS: PM_MATNR FOR MARA-MATNR OBLIGATORY .
SELECT-OPTIONS: PM_EAN11 FOR MARA-EAN11.
PARAMETERS: PM_EMENG LIKE RC29L-EMENG OBLIGATORY DEFAULT 1.
SELECTION-SCREEN:END OF BLOCK B1.
START-OF-SELECTION.
PERFORM GET_MATNR.
PERFORM GET_BOM.
PERFORM GET_FIELDCAT.
PERFORM WRITE_ITEM.
CALL FUNCTION 'ZC_PP_COUNTREPORT'"ͳ¼Æ±¨±í
EXPORTING
TCODE = SY-TCODE.
*&---------------------------------------------------------------------*
*& Form GET_MATNR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
七夕歌词FORM GET_MATNR .
SELECT A~MATNR EAN11 MAKTX INTO TABLE MITAB
FROM MARA AS A JOIN MARC AS B ON A~MATNR = B~MATNR
JOIN MAKT AS C ON A~MATNR = C~MATNR AND SPRAS = SY-LANGU
WHERE WERKS = PM_WERKS AND A~MATNR IN PM_MATNR AND EAN11 IN PM_EAN11 AND MTART IN ('FERT','HALB').
ENDFORM. " GET_MATNR
*&---------------------------------------------------------------------*
*& Form GET_BOM
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
极地长寒气候FORM GET_BOM .
DATA: POINT TYPE CHAR10 , NUM TYPE N,LEN TYPE I.
DATA: FIRSTFLAG TYPE I VALUE 1.
LOOP AT MITAB.
DATA: TMP_STB LIKE STPOX OCCURS 10 WITH HEADER LINE.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
CA
PID = 'PP01' "BOM Application
DATUV = SY-DATUM
MTNRV = MITAB-MATNR "MATERAIL NUMBER
EMENG = PM_EMENG
MEHRS = 'X'
WERKS = PM_WERKS
STLAN = '1'
TABLES
STB = TMP_STB
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
OTHERS = 8.
IF TMP_STB[] IS NOT INITIAL.
IF FIRSTFLAG NE 1.
CLEAR: ITAB.
APPEND ITAB.
ELSE.
FIRSTFLAG = 0.
ENDIF.
CLEAR: ITAB.
ITAB-MATNR = MITAB-MATNR.
ITAB-EAN11 = MITAB-EAN11.
ITAB-MAKTX = MITAB-MAKTX.
APPEND ITAB.
LOOP AT TMP_STB.
MOVE-CORRESPONDING TMP_STB TO ITAB.
ITAB-MATNR = TMP_STB-IDNRK.
POINT = '..........'.
NUM = TMP_STB-STUFE.
LEN = STRLEN( NUM ).
IF LEN = 1.
CONCATENATE POINT+0(TMP_STB-STUFE) NUM INTO ITAB-DGLVL.
ELSEIF LEN = 2.
CONCATENATE POINT+0(8) NUM INTO ITAB-DGLVL.
ELSEIF LEN = 3.
CONCATENATE POINT+0(7) NUM INTO ITAB-DGLVL.
ELSE.
CONCATENATE POINT+0(6) NUM INTO ITAB-DGLVL.
ENDIF.
IF ITAB-MTART = 'FERT' OR ITAB-MTART = 'HALB'.
ITAB-MTART = TEXT-012.
ELSEIF ITAB-MTART = 'UNBW'.
ITAB-MTART = TEXT-013.
ELSEIF ITAB-MTART = 'ROH'.
ITAB-MTART = TEXT-014.
ENDIF.
CLEAR: ITAB-EAN11,ITAB-MAKTX.
SELECT SINGLE EAN11 INTO ITAB-EAN11 FROM MARA WHERE MATNR = ITAB-MATNR.
SELECT SINGLE MAKTX INTO ITAB-MAKTX FROM MAKT WHERE MATNR = ITAB-MATNR AND SPRAS = SY-LANGU.
APPEND ITAB.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDFORM. " GET_BOM
*&---------------------------------------------------------------------*
*& Form GET_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_FIELDCAT .
FIELDCAT-FIELDNAME = 'DGLVL'.
FIELDCAT-SELTEXT_M = '展开层'.
FIELDCAT-FIX_COLUMN = 'X'.
FIELDCAT-JUST = 'L'.
FIELDCAT-NO_OUT = ' '.
FIELDCAT-INTLEN = 10.
APPEND FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-FIELDNAME = 'POSNR'.
FIELDCAT-SELTEXT_M = 'BOM 项目号'.
FIELDCAT-FIX_COLUMN = 'X'.
FIELDCAT-INTLEN = 10.
APPEND FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-FIELDNAME = 'MATNR'.
FIELDCAT-SELTEXT_M = '物料号'.
FIELDCAT-FIX_COLUMN = 'X'.
FIELDCAT-INTLEN = 18.
APPEND FIELD
CAT.
水上运动项目CLEAR FIELDCAT.
FIELDCAT-FIELDNAME = 'EAN11'.
FIELDCAT-SELTEXT_M = 'EAN'.
FIELDCAT-INTLEN = 18.
APPEND FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-FIELDNAME = 'MAKTX'.
FIELDCAT-SELTEXT_M = '物料描述'.
FIELDCAT-INTLEN = 35.
APPEND FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-FIELDNAME = 'MNGKO'.
FIELDCAT-SELTEXT_M = '组件数量'.
FIELDCAT-NO_ZERO = 'X'.
* fieldcat-decimals_out = '0'.
FIELDCAT-QFIELDNAME = 'MEINS'.
FIELDCAT-JUST = 'L'.
FIELDCAT-INTLEN = 16.
APPEND FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-FIELDNAME = 'MEINS'.
FIELDCAT-SELTEXT_M = '单位'.
FIELDCAT-INTLEN = 8.
APPEND FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-FIELDNAME = 'MTART'.
FIELDCAT-JUST = 'L'.
筛子玩法FIELDCAT-SELTEXT_M = '物料类型'.
FIELDCAT-INTLEN = 10.
APPEND FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-FIELDNAME = 'MATKL'.
FIELDCAT-JUST = 'L'.
FIELDCAT-SELTEXT_M = '物料组'.
FIELDCAT-INTLEN = 14.
APPEND FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-FIELDNAME = 'SOBMX'.
FIELDCAT-JUST = 'L'.
FIELDCAT-SELTEXT_M = '特殊采购类型'.
FIELDCAT-INTLEN = 12.
APPEND FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-FIELDNAME = 'POTX1'.
FIELDCAT-JUST = 'L'.
FIELDCAT-SELTEXT_M = 'BOM 项目文本'.
FIELDCAT-INTLEN = 30.
APPEND FIELDCAT.
CLEAR FIELDCAT.
ENDFORM. " GET_FIELDCAT
*&---------------------------------------------------------------------*
*& Form WRITE_ITEM
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM WRITE_ITEM .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-CPROG
IS_LAYOUT = WT_LAYOUT
I_GRID_TITLE = SY-TITLE
I_DEFAULT = 'X'
I_SAVE = 'X'
IT_FIELDCAT = FIELDCAT[]
IT_EVENTS = WT_EVENTS
I_CALLBACK_USER_COMMAND = G_COMMAND
TABLES
T_OUTTAB = ITAB.
ENDFORM. " WRITE_ITEM
* ************ALV ÖеÄÊó±êµã»÷¶¯×÷ ****************
FORM USER_COMMANDS USING R_UCOMM LIKE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.
DATA:ITAB_LN LIKE LINE OF ITAB.
CASE R_UCOMM.
WHEN '&IC1'.
IF SELFIELD-VALUE NE ''.
IF SELFIELD-SEL_TAB_FIELD = '1-MATNR' .
SET PARAMETER ID 'MXX' FIELD 'K'.
SET PARAMETER ID 'MAT' FIELD SELFIELD-VALUE.
汪峰的老婆是谁
SET PARAMETER ID 'LIF' FIELD ''.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
ENDCASE.
CLEAR R_UCOMM.CLEAR ITAB_LN.
ENDFORM. "USER_COMMAND