查询计划功能执行情况,通用功能,直接复制粘贴可用。
效果图:
代码:
*&---------------------------------------------------------------------*
*& Report ZBPS_LAY_EXE_STAT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZBPS_LAY_EXE_STAT.
TABLES: UPC_STATISTIC3,"计划功能执行记录
UPB_PS_PROP,"计划文件夹内容设置
UPB_PS_NAME_T,"计划文件夹名称
USR02.
TABLES:UPC_AREAT,UPC_PLEVELT,UPC_PACKAGET,
UPF_PARAMT,UPP_PARAMT.
DATA GT_STAT LIKE TABLE OF UPC_STATISTIC3 WITH HEADER LINE.
DATA GT_PROP LIKE TABLE OF UPB_PS_PROP WITH HEADER LINE.
DATA GT_NAME LIKE TABLE OF UPB_PS_NAME_T WITH HEADER LINE.
FIELD-SYMBOLS <FS_STAT> LIKE LINE OF GT_STAT.
FIELD-SYMBOLS <FS_PROP> LIKE LINE OF GT_PROP.
FIELD-SYMBOLS <FS_NAME> LIKE LINE OF GT_NAME.
DATA:
GT_UPC_AREAT LIKE TABLE OF UPC_AREAT WITH HEADER LINE,
GT_UPC_PLEVELT LIKE TABLE OF UPC_PLEVELT WITH HEADER LINE,
GT_UPC_PACKAGET LIKE TABLE OF UPC_PACKAGET WITH HEADER LINE,
GT_UPF_PARAMT LIKE TABLE OF UPF_PARAMT WITH HEADER LINE,
GT_UPP_PARAMT LIKE TABLE OF UPP_PARAMT WITH HEADER LINE.
FIELD-SYMBOLS <FS1> LIKE LINE OF GT_UPC_AREAT.
FIELD-SYMBOLS <FS2> LIKE LINE OF GT_UPC_PLEVELT.
FIELD-SYMBOLS <FS3> LIKE LINE OF GT_UPC_PACKAGET.
FIELD-SYMBOLS <FS4> LIKE LINE OF GT_UPF_PARAMT.
FIELD-SYMBOLS <FS5> LIKE LINE OF GT_UPP_PARAMT.
TYPE-POOLS: slis.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv.
DATA: i_layout TYPE slis_layout_alv.
DATA: I_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA: BEGIN OF GT_ALV OCCURS 0.
INCLUDE STRUCTURE UPC_STATISTIC3.
DATA LAY_NAME TYPE UPB_Y_PS_NAME.
DATA LAY_TEXT TYPE UPB_Y_PS_NAMETXT.
* DATA ZTEXT TYPE CHAR10 .
DATA ZTEXT1 TYPE CHAR100 .
DATA ZTEXT2 TYPE CHAR100 .
DATA ZTEXT3 TYPE CHAR100 .
DATA ZTEXT4 TYPE CHAR100 .
DATA END OF GT_ALV.
SELECTION-SCREEN BEGIN OF BLOCK blk01 WITH FRAME.
SELECT-OPTIONS S_DATE FOR UPC_STATISTIC3-DATUM DEFAULT SY-DATUM.
SELECT-OPTIONS S_BNAME FOR USR02-BNAME.
SELECT-OPTIONS S_LNAME FOR UPB_PS_PROP-NAME MATCHCODE OBJECT ZUPB_PS_NAME_F4 .
PARAMETERS P_DTL TYPE C AS CHECKBOX .
SELECTION-SCREEN END OF BLOCK blk01.
START-OF-SELECTION.
PERFORM select_data.
PERFORM process_data.
PERFORM show_data.
FORM select_data .
SELECT * INTO TABLE GT_STAT
FROM UPC_STATISTIC3
WHERE DATUM IN S_DATE
AND UNAME IN S_BNAME .
CHECK GT_STAT[] IS NOT INITIAL.
SELECT * INTO TABLE GT_PROP
FROM UPB_PS_PROP
FOR ALL ENTRIES IN GT_STAT
WHERE AREA = GT_STAT-AREA .
IF GT_PROP[] IS NOT INITIAL.
SELECT * INTO TABLE GT_NAME
FROM UPB_PS_NAME_T
FOR ALL ENTRIES IN GT_PROP
WHERE NAME = GT_PROP-NAME.
* AND LANG = SY-LANGU .
ENDIF.
SELECT * INTO TABLE GT_UPC_AREAT FROM UPC_AREAT
FOR ALL ENTRIES IN GT_STAT
WHERE AREA = GT_STAT-AREA AND LANGU = SY-LANGU.
SELECT * INTO TABLE GT_UPC_PLEVELT FROM UPC_PLEVELT
FOR ALL ENTRIES IN GT_STAT
WHERE AREA = GT_STAT-AREA AND LANGU = SY-LANGU.
SELECT * INTO TABLE GT_UPC_PACKAGET FROM UPC_PACKAGET
FOR ALL ENTRIES IN GT_STAT
WHERE AREA = GT_STAT-AREA AND LANGU = SY-LANGU.
SELECT * INTO TABLE GT_UPF_PARAMT FROM UPF_PARAMT
FOR ALL ENTRIES IN GT_STAT
WHERE AREA = GT_STAT-AREA AND LANGU = SY-LANGU.
SELECT * INTO TABLE GT_UPP_PARAMT FROM UPP_PARAMT
FOR ALL ENTRIES IN GT_STAT
WHERE AREA = GT_STAT-AREA AND LANGU = SY-LANGU.
ENDFORM.
FORM process_data.
FIELD-SYMBOLS <FS>.
SORT GT_PROP BY AREA PLEVEL PPACKAGE METHOD PARAM .
SORT GT_NAME BY NAME LANG.
SORT GT_UPC_AREAT .
SORT GT_UPC_PLEVELT .
SORT GT_UPC_PACKAGET .
SORT GT_UPF_PARAMT .
SORT GT_UPP_PARAMT .
LOOP AT GT_STAT ASSIGNING <FS_STAT>.
MOVE <FS_STAT> TO GT_ALV.
READ TABLE GT_PROP ASSIGNING <FS_PROP> BINARY SEARCH WITH KEY
AREA = <FS_STAT>-AREA
PLEVEL = <FS_STAT>-PLEVEL
PPACKAGE = <FS_STAT>-PPACKAGE
METHOD = <FS_STAT>-METHOD
PARAM = <FS_STAT>-PARAM .
IF SY-SUBRC = 0.
GT_ALV-LAY_NAME = <FS_PROP>-NAME.
READ TABLE GT_NAME ASSIGNING <FS_NAME>
BINARY SEARCH WITH KEY NAME = <FS_PROP>-NAME LANG = SY-LANGU.
IF SY-SUBRC = 0.
GT_ALV-LAY_TEXT = <FS_NAME>-TEXT.
ELSE.
READ TABLE GT_NAME ASSIGNING <FS_NAME>
BINARY SEARCH WITH KEY NAME = <FS_PROP>-NAME .
IF SY-SUBRC = 0.
GT_ALV-LAY_TEXT = <FS_NAME>-TEXT.
ENDIF.
ENDIF.
ENDIF.
IF S_LNAME[] IS NOT INITIAL.
IF GT_ALV-LAY_NAME IN S_LNAME.
ELSE.
CONTINUE.
CLEAR GT_ALV.
ENDIF.
ENDIF.
IF P_DTL = 'X'.
READ TABLE GT_UPC_AREAT ASSIGNING <FS1> BINARY SEARCH WITH KEY
AREA = <FS_STAT>-AREA .
IF SY-SUBRC = 0.
GT_ALV-ZTEXT1 = <FS1>-TEXT.
ENDIF.
READ TABLE GT_UPC_PLEVELT ASSIGNING <FS2> BINARY SEARCH WITH KEY
AREA = <FS_STAT>-AREA PLEVEL = <FS_STAT>-PLEVEL.
IF SY-SUBRC = 0.
GT_ALV-ZTEXT2 = <FS2>-TEXT.
ENDIF.
READ TABLE GT_UPC_PACKAGET ASSIGNING <FS3> BINARY SEARCH WITH KEY
AREA = <FS_STAT>-AREA PLEVEL = <FS_STAT>-PLEVEL PPACKAGE = <FS_STAT>-PPACKAGE.
IF SY-SUBRC = 0.
GT_ALV-ZTEXT3 = <FS3>-TEXT.
ENDIF.
IF <FS_STAT>-METHOD = '0-MP'.
READ TABLE GT_UPP_PARAMT ASSIGNING <FS5> BINARY SEARCH WITH KEY
AREA = <FS_STAT>-AREA PLEVEL = <FS_STAT>-PLEVEL PARAM = <FS_STAT>-PARAM.
IF SY-SUBRC = 0.
GT_ALV-ZTEXT4 = <FS5>-PARAMTXT.
ENDIF.
ELSE.
READ TABLE GT_UPF_PARAMT ASSIGNING <FS4> BINARY SEARCH WITH KEY
AREA = <FS_STAT>-AREA PLEVEL = <FS_STAT>-PLEVEL METHOD = <FS_STAT>-METHOD PARAM = <FS_STAT>-PARAM.
IF SY-SUBRC = 0.
GT_ALV-ZTEXT4 = <FS4>-TEXT.
ENDIF.
ENDIF.
ENDIF.
* GT_ALV-ZTEXT = 'Executed'.
APPEND GT_ALV.
CLEAR GT_ALV.
ENDLOOP.
SORT GT_ALV .
IF P_DTL = ''.
SORT GT_ALV BY DATUM UNAME LAY_NAME .
DELETE ADJACENT DUPLICATES FROM GT_ALV COMPARING DATUM UNAME LAY_NAME .
DELETE GT_ALV WHERE LAY_NAME = ''.
ENDIF.
ENDFORM.
FORM show_data .
PERFORM build_fieldcat.
PERFORM build_layout.
PERFORM build_sort.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'FRM_USER_COMMAND'
is_layout = i_layout
it_fieldcat = it_fieldcat
IT_SORT = I_SORT
TABLES
t_outtab = GT_ALV[]
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-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
FORM build_layout .
i_layout-zebra = 'X'.
i_layout-colwidth_optimize = 'X'.
i_layout-detail_popup = 'X'.
i_layout-detail_initial_lines = 'X'.
ENDFORM.
FORM build_fieldcat .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'DATUM' 'Date' '' '' .
IF P_DTL = 'X'.
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'UZEIT' 'Time' '' '' .
ENDIF.
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'UNAME' 'User' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'LAY_NAME' 'Layout' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'LAY_TEXT' 'LayoutName' '' '' .
*PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'ZTEXT' 'Status' '' '' .
IF P_DTL = 'X'.
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'AREA' 'Area' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'ZTEXT1' 'AreaName' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'PLEVEL' 'Level' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'ZTEXT2' 'LevelName' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'PPACKAGE' 'Package' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'ZTEXT3' 'PackageName' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'METHOD' 'Method' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'PARAM' 'PARAM' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'ZTEXT4' 'ParamName' '' '' .
ENDIF.
*IF P_DTL = ''.
*ENDIF.
IF P_DTL = 'X'.
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'TYPE' 'TYPE' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'RUNTIME_BRUTTO' 'Total Execution Time' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'BW_READ_RECS' 'Data Records Read by BW' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'BW_READ_RECS_DEL' 'BW Number of Deleted Zero Records' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'BW_READ_CALLS' 'Number of Read Accesses' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'BW_READ_TIME' 'Total Read Time for Data Recs' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'PF_RECS_READ' 'Planning function: Number of Recs Read' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'PF_RECS_CHANGED' 'Plng Function: Records Changed' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'PF_RECS_NEW' 'Planning Function: Newly Gen. Recs' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'PF_RECS_READ_REF' 'Planning Function: Number of Read Reference Data' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'MP_P_CELLS_TIME' 'MP Time to Transport and Presnt Data Cells to PC' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'MP_P_CELLS_NUM' 'No. of Data Cells, which Are Transferred to Front End' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'MP_OPEN_VIEWER' 'MP Time to Start the Display Tool' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'MP_LOG_SCR' 'MP Time to Build the Logical Screen' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'MP_P_DATA_TIME' 'MP Prepare and Write Data Frontend' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'WEB_PAI' 'Web Input Processing' '' '' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'WEB_PBO' 'Web Output Process' '' '' .
ENDIF.
ENDFORM.
FORM sub_fill_fieldcat_alv TABLES lt_fieldcat TYPE slis_t_fieldcat_alv
USING ref_tabname fieldname fieldlabel p_hotspot p_just
.
DATA: ws_fieldcat TYPE slis_fieldcat_alv .
DATA: w_col_pos TYPE i.
* ws_fieldcat-tabname = 'GT_ALV'.
w_col_pos = w_col_pos + 1.
CLEAR ws_fieldcat.
IF ref_tabname <> space.
ws_fieldcat-ref_tabname = ref_tabname.
ENDIF.
ws_fieldcat-fieldname = fieldname.
IF fieldlabel <> space.
ws_fieldcat-seltext_l = fieldlabel.
ws_fieldcat-seltext_m = fieldlabel.
ws_fieldcat-seltext_s = fieldlabel.
ws_fieldcat-ddictxt = 'M'.
ws_fieldcat-reptext_ddic = fieldlabel.
ENDIF.
ws_fieldcat-key = space.
ws_fieldcat-do_sum = space.
ws_fieldcat-col_pos = w_col_pos.
ws_fieldcat-no_out = space.
ws_fieldcat-hotspot = p_hotspot.
ws_fieldcat-just = p_just.
APPEND ws_fieldcat TO lt_fieldcat .
ENDFORM. " sub_fill_fieldcat_alv
FORM set_pf_status USING extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD_FULLSCREEN' .
ENDFORM. "SET_PF_STATUS
FORM frm_user_command USING r_ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&F03' OR '&F15' OR '&F12'.
WHEN OTHERS.
ENDCASE.
***&刷新
* selfield-refresh = 'X'.
ENDFORM.
FORM BUILD_SORT .
DATA L_SORT TYPE slis_sortinfo_alv .
L_SORT-spos = 1 .
L_SORT-fieldname = 'DATUM' .
APPEND L_SORT TO I_SORT.
L_SORT-spos = 2 .
L_SORT-fieldname = 'UNAME' .
APPEND L_SORT TO I_SORT.
ENDFORM. " BUILD_SORT