复制代码
*&---------------------------------------------------------------------*
*& REPORT ZRPT_PP_ARBPL_LST
*&
*&---------------------------------------------------------------------*
*& author ABAP00
*& date 20251211
*& from
*& Tcode
*&---------------------------------------------------------------------*
REPORT ZRPT_PP_ARBPL_LST.
TABLES: CRHD, CRTX, TC23T, TC24, TC30T.
SELECTION-SCREEN BEGIN OF BLOCK 001 WITH FRAME TITLE BLKTIL.
SELECT-OPTIONS S_ARBPL FOR CRHD-ARBPL. "工作中心
SELECT-OPTIONS S_WERKS FOR CRHD-WERKS. "工厂
SELECT-OPTIONS S_LVORM FOR CRHD-LVORM. "工作中心删除标志
SELECTION-SCREEN END OF BLOCK 001.
TYPES:
BEGIN OF TYP_DATA,
ARBPL TYPE CRHD-ARBPL, "工作中心
WERKS TYPE CRHD-WERKS, "工厂
AEDAT_TEXT TYPE CRTX-AEDAT_TEXT, "更改日期
AENAM_TEXT TYPE CRTX-AENAM_TEXT, "用户名
KTEXT0 TYPE CRTX-KTEXT, "短描述
BEGDA TYPE CRHD-BEGDA, "开始日期
ENDDA TYPE CRHD-ENDDA, "结束日期
VERWE TYPE CRHD-VERWE, "工作中心类别
KTEXT1 TYPE TC30T-KTEXT, "工作中心类别描述
LVORM TYPE CRHD-LVORM, "工作中心删除标志
PLANV TYPE CRHD-PLANV, "任务清单使用码
TXT TYPE TC23T-TXT, "使用描述
STAND TYPE CRHD-STAND, "工作中心位置
KTEXT2 TYPE CRHD-VERAN, "工作中心负责人
KTEXT TYPE TC24-KTEXT, "文本,40 个字符长
VGWTS TYPE CRHD-VGWTS, "标准值码
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,
GT_FIELDCAT TYPE LVC_T_FCAT,
GS_FIELDCAT TYPE LVC_S_FCAT,
GS_LAYOUT TYPE LVC_S_LAYO.
INITIALIZATION.
BLKTIL = '请输入条件'.
%_S_ARBPL_%_APP_%-TEXT = '工作中心'.
%_S_WERKS_%_APP_%-TEXT = '工厂'.
%_S_LVORM_%_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
CRHD~ARBPL, "工作中心
CRHD~WERKS, "工厂
CRTX~AEDAT_TEXT, "更改日期
CRTX~AENAM_TEXT, "用户名
CRTX~KTEXT AS KTEXT0, "短描述
CRHD~BEGDA, "开始日期
CRHD~ENDDA, "结束日期
CRHD~VERWE, "工作中心类别
TC30T~KTEXT AS KTEXT1, "工作中心类别描述
CRHD~LVORM, "工作中心删除标志
CRHD~PLANV, "任务清单使用码
TC23T~TXT, "使用描述
CRHD~STAND, "工作中心位置
CRHD~VERAN AS KTEXT2, "工作中心负责人
TC24~KTEXT, "文本,40 个字符长
CRHD~VGWTS "标准值码
INTO TABLE @GT_DATA
FROM CRHD
INNER JOIN CRTX ON CRTX~OBJID = CRHD~OBJID AND CRTX~OBJTY = CRHD~OBJTY
LEFT JOIN TC24 ON TC24~WERKS = CRHD~WERKS AND TC24~VERAN = CRHD~VERAN
LEFT JOIN TC30T ON TC30T~VERWE = CRHD~VERWE and tc30t~spras = '1'
LEFT JOIN TC23T ON TC23T~PLANV = CRHD~PLANV and tc23t~spras = '1'
WHERE CRHD~ARBPL IN @S_ARBPL
AND CRHD~WERKS IN @S_WERKS
AND CRHD~LVORM IN @S_LVORM.
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
P_NO_ZERO TYPE XFLAG
P_fix 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'.
GS_FIELDCAT-FIX_COLUMN = P_FIX.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR: GS_FIELDCAT.
ENDFORM. "BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*& FORM DISPLAY_DATA
*&---------------------------------------------------------------------*
* 显示数据
*----------------------------------------------------------------------*
FORM DISPLAY_DATA.
PERFORM BUILD_FIELDCAT USING 'ARBPL' '' '' 'CRHD' 'ARBPL' '' '' '工作中心' 'X' 'X'.
PERFORM BUILD_FIELDCAT USING 'WERKS' '' '' 'CRHD' 'WERKS' '' '' '工厂' 'X' 'X'.
PERFORM BUILD_FIELDCAT USING 'AEDAT_TEXT' '' '' 'CRTX' 'AEDAT_TEXT' '' '' '更改日期' '' ''.
PERFORM BUILD_FIELDCAT USING 'AENAM_TEXT' '' '' 'CRTX' 'AENAM_TEXT' '' '' '用户名' '' ''.
PERFORM BUILD_FIELDCAT USING 'KTEXT0' '' '' 'CRTX' 'KTEXT' '' '' '短描述' '' ''.
PERFORM BUILD_FIELDCAT USING 'BEGDA' '' '' 'CRHD' 'BEGDA' '' '' '开始日期' '' ''.
PERFORM BUILD_FIELDCAT USING 'ENDDA' '' '' 'CRHD' 'ENDDA' '' '' '结束日期' '' ''.
PERFORM BUILD_FIELDCAT USING 'VERWE' '' '' 'CRHD' 'VERWE' '' '' '工作中心类别' '' ''.
PERFORM BUILD_FIELDCAT USING 'KTEXT1' '' '' 'TC30T' 'KTEXT' '' '' '工作中心类别描述' '' ''.
PERFORM BUILD_FIELDCAT USING 'LVORM' '' '' 'CRHD' 'LVORM' '' '' '工作中心删除标志' '' ''.
PERFORM BUILD_FIELDCAT USING 'PLANV' '' '' 'CRHD' 'PLANV' '' '' '任务清单使用码' '' ''.
PERFORM BUILD_FIELDCAT USING 'TXT' '' '' 'TC23T' 'TXT' '' '' '使用描述' '' ''.
PERFORM BUILD_FIELDCAT USING 'STAND' '' '' 'CRHD' 'STAND' '' '' '工作中心位置' '' ''.
PERFORM BUILD_FIELDCAT USING 'KTEXT2' '' '' 'CRHD' 'VERAN' '' '' '工作中心负责人' '' ''.
PERFORM BUILD_FIELDCAT USING 'KTEXT' '' '' 'TC24' 'KTEXT' '' '' '文本,40 个字符长' '' ''.
PERFORM BUILD_FIELDCAT USING 'VGWTS' '' '' 'CRHD' 'VGWTS' '' '' '标准值码' '' ''.
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.
DATA:LS_SELDATA like GS_DATA.
READ TABLE GT_DATA INTO LS_SELDATA INDEX RS_SELFIELD-TABINDEX.
CASE R_UCOMM.
WHEN '&IC1'.
CASE RS_SELFIELD-FIELDNAME.
WHEN 'ARBPL'.
CHECK RS_SELFIELD-VALUE IS NOT INITIAL.
SET PARAMETER ID 'WRK' FIELD LS_SELDATA-WERKS.
SET PARAMETER ID 'AGR' FIELD RS_SELFIELD-VALUE.
CALL TRANSACTION 'CR03' AND SKIP FIRST SCREEN.
ENDCASE.
ENDCASE.
ENDFORM. "USER_COMMAND_ALV