REPORT ZRPT_MM_SUPPLY_QUOTA.
TABLES: EQUK, EQUP, LFA1, MAKT.
SELECTION-SCREEN BEGIN OF BLOCK 001 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS S_WERKS FOR EQUK-WERKS. "工厂
SELECT-OPTIONS S_LIFNR FOR EQUP-LIFNR. "供应商帐户号
SELECT-OPTIONS S_MATNR FOR EQUK-MATNR. "物料编号
SELECT-OPTIONS S_QUOTE FOR EQUP-QUOTE. "配额
SELECTION-SCREEN END OF BLOCK 001.
TYPES:
BEGIN OF TYP_DATA,
WERKS TYPE EQUK-WERKS, "工厂
LIFNR TYPE EQUP-LIFNR, "供应商帐户号
NAME1 TYPE LFA1-NAME1, "名称 1
MATNR TYPE EQUK-MATNR, "物料编号
MAKTX TYPE MAKT-MAKTX, "物料描述(短文本)
QUOTE TYPE EQUP-QUOTE, "配额
END OF TYP_DATA.
DATA:
GT_DATA TYPE TABLE OF TYP_DATA,
GS_DATA TYPE TYP_DATA,
GT_FIELDCAT TYPE LVC_T_FCAT,
GS_FIELDCAT TYPE LVC_S_FCAT,
GS_LAYOUT TYPE LVC_S_LAYO.
DATA:STDATUM LIKE SY-DATUM,
STUZEIT LIKE SY-UZEIT.
INITIALIZATION.
%_S_WERKS_%_APP_%-TEXT = '工厂'.
%_S_LIFNR_%_APP_%-TEXT = '供应商帐户号'.
%_S_MATNR_%_APP_%-TEXT = '物料编号'.
%_S_QUOTE_%_APP_%-TEXT = '配额'.
S_QUOTE-low = '0'.
S_QUOTE-option = 'GT'.
S_QUOTE-SIGN = 'I'.
APPEND S_QUOTE.
START-OF-SELECTION.
STDATUM = SY-DATUM.
STUZEIT = SY-UZEIT.
PERFORM GET_DATA.
PERFORM PROCESS_DATA.
PERform WRITERPTRUNRECORD.
PERFORM DISPLAY_DATA.
*&---------------------------------------------------------------------*
*& Form WRITERPTRUNRECORD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM WRITERPTRUNRECORD.
DATA:L_WERKS LIKE T001W OCCURS 0 WITH HEADER LINE.
SELECT * INTO TABLE L_WERKS FROM T001W
WHERE WERKS IN S_WERKS.
LOOP AT L_WERKS.
get time.
CALL FUNCTION 'ZSYS_RPT_RUNRECORD'
EXPORTING
TCODE = SY-TCODE
PROGRAMM = SY-CPROG
"BUKRS = BUKRS
WERKS = L_WERKS-WERKS
DATUMRST = STDATUM
UZEITRST = STUZEIT
BATCH = SY-BATCH
DATUMREND = SY-DATUM
UZEITREND = SY-UZEIT
DATUMC = '20191112'
RUNNER = SY-UNAME
RPTSRC = '采购'.
ENDLOOP.
ENDFORM. "WRITERPTRUNRECORD
*&---------------------------------------------------------------------*
*& FORM GET_DATA
*&---------------------------------------------------------------------*
* 获取数据
*----------------------------------------------------------------------*
FORM GET_DATA.
SELECT
EQUK~WERKS "工厂
EQUP~LIFNR "供应商帐户号
LFA1~NAME1 "名称 1
EQUK~MATNR "物料编号
MAKT~MAKTX "物料描述(短文本)
EQUP~QUOTE "配额
INTO TABLE GT_DATA
FROM EQUK
JOIN makt ON makt~matnr = EQUK~MATNR
JOIN EQUP ON EQUP~QUNUM = EQUK~QUNUM
JOIN lfa1 ON lfa1~lifnr = EQUP~LIFNR
WHERE EQUK~VDATU <= SY-DATUM AND EQUK~BDATU >= SY-DATUM
AND EQUK~WERKS IN S_WERKS
AND EQUP~LIFNR IN S_LIFNR
AND EQUK~MATNR IN S_MATNR
AND EQUP~QUOTE IN S_QUOTE.
ENDFORM. "GET_DATA
*&---------------------------------------------------------------------*
*& FORM PROCESS_DATA
*&---------------------------------------------------------------------*
* 处理数据
*----------------------------------------------------------------------*
FORM PROCESS_DATA.
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.
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-COLDDICTXT = 'L'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR: GS_FIELDCAT.
ENDFORM. "BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*& FORM DISPLAY_DATA
*&---------------------------------------------------------------------*
* 显示数据
*----------------------------------------------------------------------*
FORM DISPLAY_DATA.
PERFORM BUILD_FIELDCAT USING 'WERKS' '' '' 'EQUK' 'WERKS' '' '' '工厂'.
PERFORM BUILD_FIELDCAT USING 'LIFNR' '' '' 'EQUP' 'LIFNR' '' '' '供应商帐户号'.
PERFORM BUILD_FIELDCAT USING 'NAME1' '' '' 'LFA1' 'NAME1' '' '' '名称 1'.
PERFORM BUILD_FIELDCAT USING 'MATNR' '' '' 'EQUK' 'MATNR' '' '' '物料编号'.
PERFORM BUILD_FIELDCAT USING 'MAKTX' '' '' 'MAKT' 'MAKTX' '' '' '物料描述(短文本)'.
PERFORM BUILD_FIELDCAT USING 'QUOTE' '' '' 'EQUP' 'QUOTE' '' '' '配额'.
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
供应商配额报表
最新推荐文章于 2022-05-03 22:48:36 发布