赞
踩
代码
- *&---------------------------------------------------------------------*
- *& REPORT ZRPT_MM_PRC_MDLST
- *&
- *&---------------------------------------------------------------------*
- *& author 8256
- *& date 20220402
- *& from
- *& Tcode zprcmdlst
- *&---------------------------------------------------------------------*
- REPORT ZRPT_MM_PRC_MDLST.
-
- TABLES: A017,LFA1,MAKT,konp.
-
- SELECTION-SCREEN BEGIN OF BLOCK 001 WITH FRAME TITLE TEXT-001.
- SELECT-OPTIONS S_LIFNR FOR A017-LIFNR. "供应商帐户号
- SELECT-OPTIONS S_MATNR FOR A017-MATNR. "物料编号
- SELECT-OPTIONS S_EKORG FOR A017-EKORG. "采购组织
- SELECT-OPTIONS S_WERKS FOR A017-WERKS. "工厂
- SELECT-OPTIONS S_DATBI FOR A017-DATBI. "条件记录有效截止日期
- PARAMETERS:PFLG AS CHECKBOX.
- SELECTION-SCREEN END OF BLOCK 001.
- TYPES:
- BEGIN OF TYP_DATA,
- LIFNR TYPE A017-LIFNR, "供应商帐户号
- MATNR TYPE A017-MATNR, "物料编号
- EKORG TYPE A017-EKORG, "采购组织
- WERKS TYPE A017-WERKS, "工厂
- DATBI TYPE A017-DATBI, "条件记录有效截止日期
- DATAB TYPE A017-DATAB, "条件记录有效起始日
- KNUMH TYPE A017-KNUMH, "条件记录号
- NAME1 TYPE LFA1-NAME1,
- MAKTX TYPE MAKT-MAKTX,
- KBETR TYPE KONP-KBETR,
- KPEIN TYPE KONP-KPEIN,
- KONWA TYPE KONP-KONWA,
- END OF TYP_DATA.
-
- DATA:
- STDATUM LIKE SY-DATUM,
- STUZEIT LIKE SY-UZEIT,
- GT_DATA TYPE TABLE OF TYP_DATA,
- GS_DATA TYPE TYP_DATA,
- GS_DATA1 TYPE TYP_DATA,
- GT_FIELDCAT TYPE LVC_T_FCAT,
- GS_FIELDCAT TYPE LVC_S_FCAT,
- GS_LAYOUT TYPE LVC_S_LAYO.
-
- INITIALIZATION.
- S_DATBI-HIGH = sy-datum.
- APPEND S_DATBI.
- %_S_LIFNR_%_APP_%-TEXT = '供应商帐户号'.
- %_S_MATNR_%_APP_%-TEXT = '物料编号'.
- %_S_EKORG_%_APP_%-TEXT = '采购组织'.
- %_S_WERKS_%_APP_%-TEXT = '工厂'.
- %_S_DATBI_%_APP_%-TEXT = '检查期间'.
-
- START-OF-SELECTION.
- STDATUM = SY-DATUM.
- STUZEIT = SY-UZEIT.
- PERFORM GET_DATA.
- PERFORM PROCESS_DATA.
- PERform WRITERPTRUNRECORD.
- PERFORM DISPLAY_DATA.
-
- *&---------------------------------------------------------------------*
- *& FORM GET_DATA
- *&---------------------------------------------------------------------*
- * 获取数据
- *----------------------------------------------------------------------*
- FORM GET_DATA.
- SELECT
- A017~LIFNR "供应商帐户号
- A017~MATNR "物料编号
- A017~EKORG "采购组织
- A017~WERKS "工厂
- A017~DATBI "条件记录有效截止日期
- A017~DATAB "条件记录有效起始日
- A017~KNUMH "条件记录号
- INTO TABLE GT_DATA
- FROM A017
- WHERE A017~LIFNR IN S_LIFNR
- AND A017~MATNR IN S_MATNR
- AND A017~EKORG IN S_EKORG
- AND A017~WERKS IN S_WERKS
- AND A017~DATBI >= S_DATBI-LOW.
- ENDFORM. "GET_DATA
- *&---------------------------------------------------------------------*
- *& FORM WRITERPTRUNRECORD
- *&---------------------------------------------------------------------*
- * 获取数据
- *----------------------------------------------------------------------*
- FORM WRITERPTRUNRECORD.
- *TYPES:BEGIN OF TYP_BW,
- * BUKRS LIKE T001-BUKRS ,
- * WERKS LIKE T001W-WERKS ,
- * END OF typ_BW.
- *
- * DATA:
- * GT_BW TYPE TABLE OF TYP_BW,
- * GS_BW TYPE TYP_BW.
- * SELECT B~BUKRS A~WERKS
- * INTO (GS_BW-BUKRS,GS_BW-WERKS )
- * FROM T001K AS B
- * JOIN V_T001W_BWKEY AS A ON A~BWKEY = B~BWKEY
- * WHERE B~BUKRS = S_BUKRS AND A~WERKS IN S_WEKRS.
- GET TIME.
- CALL FUNCTION 'ZSYS_RPT_RUNRECORD'
- EXPORTING
- TCODE = SY-TCODE
- PROGRAMM = SY-CPROG
- * bukrs = GS_BW-BUKRS
- * werks = GS_BW-werks
- DATUMRST = STDATUM
- UZEITRST = STUZEIT
- BATCH = SY-BATCH
- DATUMREND = SY-datum
- UZEITREND = sy-UZEIT
- DATUMC = '20220402'
- RUNNER = SY-UNAME
- RPTSRC = '陈洲'.
- *ENDSELECT.
- ENDFORM. "WRITERPTRUNRECORD
- *&---------------------------------------------------------------------*
- *& FORM PROCESS_DATA
- *&---------------------------------------------------------------------*
- * 处理数据
- *----------------------------------------------------------------------*
- FORM PROCESS_DATA.
- data:plindx TYPE i.
- data:subindx TYPE i.
- LOOP AT GT_DATA INTO GS_DATA.
- IF PFLG = 'X'.
- IF GS_DATA-DATAB < S_DATBI-LOW AND GS_DATA-DATBI > S_DATBI-HIGH.
- DELETE GT_DATA INDEX SY-TABIX.
- CONTINUE.
- ENDIF.
- ENDIF.
- SELECT SINGLE NAME1 INTO GS_DATA-NAME1 FROM LFA1 WHERE LFA1~LIFNR = GS_DATA-LIFNR.
- SELECT SINGLE MAKTX INTO GS_DATA-MAKTX FROM MAKT WHERE MAKT~MATNR = GS_DATA-MATNR.
- "基准价格获取
- SELECT SINGLE KBETR KPEIN KONWA INTO (GS_DATA-KBETR,GS_DATA-KPEIN,GS_DATA-KONWA ) FROM KONP WHERE KNUMH = GS_DATA-KNUMH.
- MODIFY GT_DATA from GS_DATA.
- ENDLOOP.
-
- SORT GT_DATA BY WERKS LIFNR MATNR DATAB.
-
- IF PFLG = 'X'.
- LOOP AT GT_DATA INTO GS_DATA.
- PLINDX = SY-TABIX.
- CLEAR SUBINDX.
- LOOP AT GT_DATA into GS_DATA1 WHERE WERKS = GS_DATA-WERKS AND MATNR = GS_DATA-MATNR AND LIFNR = GS_DATA-LIFNR
- AND EKORG = GS_DATA-EKORG AND DATBI <> gs_data-DATBI.
- SUBINDX = SUBINDX + 1.
- ENDLOOP.
- IF SUBINDX = 0.
- DELETE GT_DATA INDEX PLINDX.
- ENDIF.
- ENDLOOP.
- ENDIF.
- ENDFORM. "PROCESS_DATA
- *&---------------------------------------------------------------------*
- *& Form BUILD_FIELDCAT
- *&---------------------------------------------------------------------*
- * TEXT
- *----------------------------------------------------------------------*
- FORM BUILD_FIELDCAT USING P_FIELDNAME TYPE FIELDNAME
- P_QFIELDNAME TYPE LVC_QFNAME
- P_CFIELDNAME TYPE LVC_CFNAME
- P_REF_TABLE TYPE LVC_RTNAME
- P_REF_FIELD TYPE LVC_RFNAME
- P_CONVEXIT TYPE CONVEXIT
- P_EMPHASIZE TYPE LVC_EMPHSZ
- P_SCRTEXT_L TYPE SCRTEXT_L
- P_NO_ZERO TYPE XFLAG.
- GS_FIELDCAT-FIELDNAME = P_FIELDNAME.
- GS_FIELDCAT-QFIELDNAME = P_QFIELDNAME.
- GS_FIELDCAT-CFIELDNAME = P_CFIELDNAME.
- GS_FIELDCAT-REF_TABLE = P_REF_TABLE.
- GS_FIELDCAT-REF_FIELD = P_REF_FIELD.
- GS_FIELDCAT-CONVEXIT = P_CONVEXIT.
- GS_FIELDCAT-EMPHASIZE = P_EMPHASIZE.
- GS_FIELDCAT-SCRTEXT_L = P_SCRTEXT_L.
- GS_FIELDCAT-NO_ZERO = P_NO_ZERO.
- GS_FIELDCAT-COLDDICTXT = 'L'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR: GS_FIELDCAT.
- ENDFORM. "BUILD_FIELDCAT
- *&---------------------------------------------------------------------*
- *& FORM DISPLAY_DATA
- *&---------------------------------------------------------------------*
- * 显示数据
- *----------------------------------------------------------------------*
- FORM DISPLAY_DATA.
- PERFORM BUILD_FIELDCAT USING 'LIFNR' '' '' 'A017' 'LIFNR' '' '' '供应商帐户号' ''.
- PERFORM BUILD_FIELDCAT USING 'NAME1' '' '' 'LFA1' 'NAME1' '' '' '供应商帐户号' ''.
- PERFORM BUILD_FIELDCAT USING 'MATNR' '' '' 'A017' 'MATNR' '' '' '物料编号' ''.
- PERFORM BUILD_FIELDCAT USING 'MAKTX' '' '' 'MAKT' 'MAKTX' '' '' '物料编号' ''.
- PERFORM BUILD_FIELDCAT USING 'EKORG' '' '' 'A017' 'EKORG' '' '' '采购组织' ''.
- PERFORM BUILD_FIELDCAT USING 'WERKS' '' '' 'A017' 'WERKS' '' '' '工厂' ''.
- PERFORM BUILD_FIELDCAT USING 'DATBI' '' '' 'A017' 'DATBI' '' '' '条件记录有效截止日期' ''.
- PERFORM BUILD_FIELDCAT USING 'DATAB' '' '' 'A017' 'DATAB' '' '' '条件记录有效起始日' ''.
- PERFORM BUILD_FIELDCAT USING 'KNUMH' '' '' 'A017' 'KNUMH' '' '' '条件记录号' ''.
- PERFORM BUILD_FIELDCAT USING 'KBETR' '' '' 'KONP' 'KBETR' '' '' '价格' ''.
- PERFORM BUILD_FIELDCAT USING 'KPEIN' '' '' 'KONP' 'KPEIN' '' '' '价格单位' ''.
- PERFORM BUILD_FIELDCAT USING 'KONWA' '' '' 'KONP' 'KONWA' '' '' '货币' ''.
- gs_layout-cwidth_opt = 'X'.
- gs_layout-zebra = 'X'.
-
- CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
- EXPORTING
- I_CALLBACK_PROGRAM = SY-REPID
- " I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_ALV'
- I_CALLBACK_USER_COMMAND = 'USER_COMMAND_ALV'
- IT_FIELDCAT_LVC = GT_FIELDCAT
- IS_LAYOUT_LVC = GS_LAYOUT
- I_DEFAULT = 'X'
- I_SAVE = 'A'
- TABLES
- T_OUTTAB = GT_DATA
- EXCEPTIONS
- OTHERS = 1.
- ENDFORM. "DISPLAY_DATA
- **&---------------------------------------------------------------------*
- **& FORM PF_STATUS_ALV
- **&---------------------------------------------------------------------*
- ** TEXT
- **----------------------------------------------------------------------*
- *FORM PF_STATUS_ALV USING RT_EXTAB TYPE SLIS_T_EXTAB .
- * SET PF-STATUS 'STATUS_ALV' EXCLUDING RT_EXTAB.
- *ENDFORM. "PF_STATUS_ALV
- *&---------------------------------------------------------------------*
- *& FORM USER_COMMAND_ALV
- *&---------------------------------------------------------------------*
- * TEXT
- *----------------------------------------------------------------------*
- FORM USER_COMMAND_ALV USING R_UCOMM LIKE SY-UCOMM
- RS_SELFIELD TYPE SLIS_SELFIELD.
- CASE R_UCOMM.
- WHEN '&IC1'.
- CASE RS_SELFIELD-FIELDNAME.
- WHEN ''.
- * CHECK RS_SELFIELD-VALUE IS NOT INITIAL.
- * SET PARAMETER ID 'MBN' FIELD RS_SELFIELD-VALUE.
- * CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN.
- ENDCASE.
- ENDCASE.
- ENDFORM. "USER_COMMAND_ALV
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。