您的位置:首页 > 其它

查询计划功能执行情况

2017-08-22 16:14 471 查看
查询计划功能执行情况,通用功能,直接复制粘贴可用。

效果图:







代码:

*&---------------------------------------------------------------------*
*& 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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  BPS 执行记录