设为首页收藏本站

SAP Best Business Solution

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1043|回复: 0

Report for extract all user authority

[复制链接]

24

主题

24

帖子

197

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
197
发表于 2017-5-24 11:47:06 | 显示全部楼层 |阅读模式
*&---------------------------------------------------------------------*
*& Report  ZRBC0012                                                    *
*&---------------------------------------------------------------------*
*& Company ASAT Company Limited                                        *
*& Report  ZRBC0012                                                    *
*&                                                                     *
*& Autor : Kevin huo                                                   *
*&                                                                     *
*& Date  : 06.14.2011                                                  *
*&---------------------------------------------------------------------*
*& Description:                                                        *
*& This program is to extract all user authority                       *
*& --------------------------------------------------------------------*
REPORT ZRBC0012 MESSAGE-ID 00.
CONSTANTS: OK TYPE I VALUE 0.
INCLUDE ZRMM_ALV_TOP.
INCLUDE ZRBC0012_TOP.
INCLUDE ZRBC0012_FRM.

*----------------------------------------------------------------------*
*        INITIALIZATION                                                *
*----------------------------------------------------------------------*
INITIALIZATION.
  PERFORM ALV_INIT.

*AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LAYT.
*  PERFORM F4_FOR_VARIANT.
*----------------------------------------------------------------------*
*        START-OF-SELECTION                                            *
*----------------------------------------------------------------------*
START-OF-SELECTION.
  PERFORM GET_USER_DETAIL.
  PERFORM GET_TCODES.
  PERFORM PROCESS_DATA.
  PERFORM OUTPUT.


*&---------------------------------------------------------------------*
*&  Include           ZRMM_ALV_TOP                                     *
*&---------------------------------------------------------------------*
*---------------------------------------------------------------------*
* Data declaration
*---------------------------------------------------------------------*
* ALV
TYPE-POOLS: SLIS,KKBLO.
INCLUDE <ICON>.
INCLUDE <SYMBOL>.

DATA  G_REPID     LIKE SY-REPID.
* Internal table to store saved display variant
DATA GT_FCAT_SAV    TYPE KKBLO_FIELDCAT OCCURS 0 WITH HEADER LINE.
DATA GT_SORT_SAV    TYPE KKBLO_SORTINFO OCCURS 0 WITH HEADER LINE.
DATA GT_FILTER_SAV  TYPE KKBLO_FILTER   OCCURS 0 WITH HEADER LINE.
DATA GS_LAYOUT_SAV  TYPE KKBLO_LAYOUT.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
      GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
      GS_LAYOUT   TYPE SLIS_LAYOUT_ALV,
      GS_EVENT    TYPE SLIS_ALV_EVENT,      "Def. of call back routines
      GS_SORT     TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,
      GT_EVENTS   TYPE SLIS_T_EVENT.
DATA: IT_FCAT      TYPE LVC_T_FCAT.
DATA: ALV_KEYINFO      TYPE SLIS_KEYINFO_ALV.
DATA: ALV_VARIANT      LIKE DISVARIANT.
DATA: ALV_LAYOUT       TYPE SLIS_LAYOUT_ALV.
DATA: ALV_REPID        LIKE SY-REPID.
DATA: ALV_PRINT        TYPE SLIS_PRINT_ALV.
DATA: ALV_DETAIL_FUNC(30).
DATA: ALV_DEFAULT_VARIANT    LIKE  DISVARIANT-VARIANT.
DATA: ALV_COLOURIZE_FIELDS   LIKE  MMIM_REP_PRINT-COLOR.
DATA:SORTCAT             TYPE SLIS_T_SORTINFO_ALV,
     SORTCAT_LN          TYPE SLIS_SORTINFO_ALV.

DATA: T_FC   TYPE SLIS_T_FIELDCAT_ALV,
        T_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA:G_SAVE(01)     TYPE C VALUE 'A',
     G_EXIT(01)     TYPE C,
     G_POPR(03)     TYPE N,
     G_VARIANT      LIKE DISVARIANT,
     GX_VARIANT     LIKE DISVARIANT.
DATA:ALV_DEF     LIKE DISVARIANT-VARIANT.
*"Callback
DATA:

    G_STATUS_SET   TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',
    G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND',
    G_TOP_OF_PAGE  TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
    G_TOP_OF_LIST  TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',
    G_END_OF_LIST  TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'.
CONSTANTS:
    C_F2CODE          LIKE SY-UCOMM VALUE '&ETA',
    C_TOP_OF_PAGE     TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
    C_A(1)            TYPE C VALUE 'A',
    C_H(1)            TYPE C VALUE 'H',
    C_S(1)            TYPE C VALUE 'S',
    C_X(1)            TYPE C VALUE 'X',
    C_TBL LIKE T881-TAB VALUE 'CCSS'.     "TAB

*&---------------------------------------------------------------------*
*&      Form  ALV_INIT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ALV_INIT.
  CLEAR: ALV_KEYINFO, ALV_VARIANT, ALV_LAYOUT, ALV_PRINT.
  ALV_REPID = SY-REPID.
  CLEAR ALV_VARIANT.
  GS_LAYOUT-F2CODE = 'DOUBLE'.
  ALV_VARIANT-REPORT = ALV_REPID.
*  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
*       EXPORTING
*            I_SAVE     = G_SAVE
*       CHANGING
*            CS_VARIANT = ALV_VARIANT
*       EXCEPTIONS
*            NOT_FOUND  = 2.
*  IF SY-SUBRC = 0.
*    ALV_DEF = ALV_VARIANT-VARIANT.
**   save the initial, e.g. default variant                  "n579976
*    MOVE ALV_VARIANT-VARIANT TO  ALV_DEFAULT_VARIANT.       "n579976
*  ENDIF.
  SELECT  VARIANT INTO ALV_VARIANT-VARIANT
    FROM LTDX
    WHERE REPORT = ALV_VARIANT-REPORT
    AND   USERNAME = SY-UNAME.
  ENDSELECT.
* Printing settings
  GS_LAYOUT-GET_SELINFOS = 'X'.
  GS_LAYOUT-GROUP_CHANGE_EDIT = 'X'.

  CLEAR G_VARIANT.
  G_VARIANT-REPORT = SY-REPID.

ENDFORM.                    " ALV_INIT
*&---------------------------------------------------------------------*
*&      Form  SUB_F4_FOR_VARIANT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM SUB_F4_FOR_VARIANT.
  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
    EXPORTING
      IS_VARIANT = ALV_VARIANT
      I_SAVE     = G_SAVE
    IMPORTING
      E_EXIT     = G_EXIT
      ES_VARIANT = GX_VARIANT
    EXCEPTIONS
      NOT_FOUND  = 2.

  IF SY-SUBRC = 2.
    MESSAGE ID SY-MSGID TYPE C_S NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ELSE.
    IF G_EXIT = SPACE.
      ALV_DEF = GX_VARIANT-VARIANT.
    ENDIF.
  ENDIF.

ENDFORM.                    " SUB_F4_FOR_VARIANT
*&---------------------------------------------------------------------*
*&      Form  Retrieve_ALV_Variant
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM RETRIEVE_ALV_VARIANT.
**  GX_VARIANT-VARIANT = P_VARI.
*  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
*       EXPORTING
*            I_SAVE     = G_SAVE
*       CHANGING
*            CS_VARIANT = ALV_VARIANT
*       EXCEPTIONS
*            NOT_FOUND  = 2.
* CLEAR: ALV_KEYINFO, ALV_VARIANT, ALV_LAYOUT, ALV_PRINT.
*  ALV_REPID = SY-REPID.
*  CLEAR ALV_VARIANT.
*  ALV_VARIANT-REPORT = ALV_REPID.
*  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
*       EXPORTING
*            I_SAVE     = 'A'
*       CHANGING
*            CS_VARIANT = ALV_VARIANT
*       EXCEPTIONS
*            NOT_FOUND  = 2.
*  IF SY-SUBRC = 0.
*    ALV_DEF = ALV_VARIANT-VARIANT.
**   save the initial, e.g. default variant                  "n579976
*    MOVE ALV_VARIANT-VARIANT TO  ALV_DEFAULT_VARIANT.       "n579976
*  ENDIF.
** Printing settings
*  GS_LAYOUT-GET_SELINFOS = 'X'.
*  GS_LAYOUT-GROUP_CHANGE_EDIT = 'X'.
*
ENDFORM.                    " Retrieve_ALV_Variant

*&---------------------------------------------------------------------*
*&  Include           ZRBC0012_TOP                                     *
*&---------------------------------------------------------------------*
TABLES: USR02,
        USR21,
        UST04,
        ADCP,
        PT1251,
        BAPIAGR.
DATA: BEGIN OF IT_USER OCCURS 0,
       BNAME LIKE USR02-BNAME,
       DEPARTMENT LIKE ADCP-DEPARTMENT,
       NAME_FIRST LIKE ADRP-NAME_FIRST,
       NAME_LAST LIKE ADRP-NAME_LAST,
      END OF IT_USER.
DATA: BEGIN OF IT_DATA OCCURS 0,
       BNAME LIKE USR02-BNAME,
       DEPARTMENT LIKE ADCP-DEPARTMENT,
       NAME       LIKE ADRP-NAME_FIRST,
       AGR_NAME LIKE BAPIAGR-AGR_NAME,
       AGR_TEXT LIKE BAPIAGR-AGR_TEXT,
       TCODE(20),
       TEXT(100),
      END OF IT_DATA.
DATA: BEGIN OF IT_ROLES OCCURS 0,
        BNAME LIKE USR02-BNAME,
        AGR_NAME LIKE BAPIAGR-AGR_NAME,
        AGR_TEXT LIKE BAPIAGR-AGR_TEXT,
      END OF IT_ROLES.
DATA: BEGIN OF IT_USER_ROLE OCCURS 0,
        BNAME LIKE USR02-BNAME,
        AGR_NAME LIKE BAPIAGR-AGR_NAME,
        AGR_TEXT LIKE BAPIAGR-AGR_TEXT,
      END OF IT_USER_ROLE.
DATA: BEGIN OF IT_TCODE OCCURS 0,
       TCODE(20),
       TEXT(100),
       AGR_NAME LIKE BAPIAGR-AGR_NAME,
       AGR_TEXT LIKE BAPIAGR-AGR_TEXT,
      END OF IT_TCODE.

*---------------------------------------------------------------------*
*       Selection criteria                                            *
*---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-T03.
SELECT-OPTIONS:
  S_USER      FOR      USR02-BNAME,
  S_DEPT      FOR ADCP-DEPARTMENT,
  S_ROLE      FOR      BAPIAGR-AGR_NAME,
  S_TCODE     FOR      PT1251-LOW,
  S_GROUP     FOR      USR02-CLASS,
  S_MGR       FOR      ADCP-FLOOR.
PARAMETERS: P_ROLE AS CHECKBOX.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK A1.


*SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-T03.
*PARAMETERS: P_ALV RADIOBUTTON GROUP A2 DEFAULT 'X' USER-COMMAND A2,
*            P_LAYT LIKE DISVARIANT-VARIANT,
*            P_DNLOD RADIOBUTTON GROUP A2.
*
*PARAMETERS: P_SVPATH LIKE RLGRAP-FILENAME MODIF ID PTH MEMORY ID PAT.
*PARAMETERS: P_SVFILE LIKE RLGRAP-FILENAME NO-DISPLAY.
*SELECTION-SCREEN END OF BLOCK B3.


*&---------------------------------------------------------------------*
*&  Include           ZRBC0012_FRM                                     *
*&---------------------------------------------------------------------*
FORM GET_USER_DETAIL.
*  Collect the data to the transfer.
  SELECT USR02~BNAME
         ADCP~DEPARTMENT
         ADRP~NAME_FIRST
         ADRP~NAME_LAST
    INTO CORRESPONDING FIELDS OF TABLE IT_USER
    FROM USR21 INNER JOIN ADCP
    ON USR21~PERSNUMBER = ADCP~PERSNUMBER
    AND USR21~ADDRNUMBER = ADCP~ADDRNUMBER
    INNER JOIN USR02
    ON USR02~BNAME = USR21~BNAME
    INNER JOIN ADRP
    ON ADRP~PERSNUMBER = USR21~PERSNUMBER
     WHERE USR02~BNAME IN S_USER
       AND USR02~CLASS IN S_GROUP
       AND ADCP~DEPARTMENT IN S_DEPT
       AND ADCP~FLOOR IN S_MGR.
ENDFORM.                    "get_user_detail

*---------------------------------------------------------------------*
*       FORM get_tcodes                                               *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM GET_TCODES.

  TABLES: TSTCT.

  DATA: L_STRING(255).
  DATA: PT1251 LIKE PT1251 OCCURS 0 WITH HEADER LINE.
  DATA: RNAME LIKE AGR_DEFINE-AGR_NAME.
  DATA: SHEETNO TYPE I.
  DATA: SHEETNAME(10).

  LOOP AT IT_USER.
    PERFORM GET_USER_ROLES USING IT_USER-BNAME.
  ENDLOOP.
  CHECK P_ROLE IS INITIAL.
  LOOP AT IT_ROLES.
    CLEAR RNAME.
    REFRESH PT1251.
    RNAME = IT_ROLES-AGR_NAME.
    CALL FUNCTION 'PRGN_1251_READ_FIELD_VALUES'
      EXPORTING
        ACTIVITY_GROUP    = RNAME
      TABLES
        FIELD_VALUES      = PT1251
      EXCEPTIONS
        NO_DATA_AVAILABLE = 1
        OTHERS            = 2.
    LOOP AT PT1251 WHERE OBJECT = 'S_TCODE' AND LOW IN S_TCODE.
      SELECT SINGLE TTEXT INTO IT_TCODE-TEXT
        FROM TSTCT
        WHERE TCODE = PT1251-LOW
          AND SPRSL = 'E'.
      IF SY-SUBRC <> 0.
        IT_TCODE-TEXT = ''.
      ENDIF.
      IT_TCODE-TCODE = PT1251-LOW.
      IT_TCODE-AGR_NAME = RNAME.
      APPEND IT_TCODE.
      CLEAR IT_TCODE.
    ENDLOOP.
  ENDLOOP.
  DELETE IT_TCODE WHERE TEXT = ''.

ENDFORM.                    "get_tcodes

*&--------------------------------------------------------------------*
*&      Form  GET_USER_IT_ROLES
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      -->USER       text
*---------------------------------------------------------------------*
FORM GET_USER_ROLES USING USER.
  DATA: BAPIADDR3  LIKE BAPIADDR3  OCCURS 0 WITH HEADER LINE,
        BAPIAGR    LIKE BAPIAGR    OCCURS 0 WITH HEADER LINE,
        BAPILOGOND LIKE BAPILOGOND OCCURS 0 WITH HEADER LINE,
        BAPIRET2   LIKE BAPIRET2   OCCURS 0 WITH HEADER LINE.
  CALL FUNCTION 'BAPI_USER_GET_DETAIL'
    EXPORTING
      USERNAME       = USER
    IMPORTING
      LOGONDATA      = BAPILOGOND
      ADDRESS        = BAPIADDR3
    TABLES
      ACTIVITYGROUPS = BAPIAGR
      RETURN         = BAPIRET2.


  LOOP AT BAPIAGR WHERE AGR_NAME IN S_ROLE.
    CLEAR IT_ROLES.
    MOVE-CORRESPONDING BAPIAGR TO IT_ROLES.
    APPEND IT_ROLES.

    MOVE-CORRESPONDING BAPIAGR TO IT_USER_ROLE.
    IT_USER_ROLE-BNAME = USER.
    APPEND IT_USER_ROLE.
  ENDLOOP.

  SORT IT_ROLES BY AGR_NAME.
  DELETE ADJACENT DUPLICATES FROM IT_ROLES COMPARING AGR_NAME.
ENDFORM.                    "get_user_IT_IT_ROLES
*&---------------------------------------------------------------------*
*&      Form  PROCESS_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PROCESS_DATA .
  DATA: L_TABIX LIKE SY-TABIX.
  SORT IT_USER BY BNAME.
  SORT IT_USER_ROLE BY BNAME.
  SORT IT_TCODE BY AGR_NAME.
  LOOP AT IT_USER.
    MOVE-CORRESPONDING IT_USER TO IT_DATA.
    CONCATENATE IT_USER-NAME_FIRST IT_USER-NAME_LAST
      INTO IT_DATA-NAME SEPARATED BY SPACE.
    READ TABLE IT_USER_ROLE WITH KEY BNAME = IT_USER-BNAME
                                     BINARY SEARCH.
    IF SY-SUBRC = 0.
      L_TABIX = SY-TABIX.
      LOOP AT IT_USER_ROLE FROM L_TABIX.
        L_TABIX = L_TABIX + 1.
        IF IT_USER_ROLE-BNAME <> IT_USER-BNAME.
          EXIT.
        ENDIF.
        IT_DATA-AGR_NAME = IT_USER_ROLE-AGR_NAME.
        IT_DATA-AGR_TEXT = IT_USER_ROLE-AGR_TEXT.
        READ TABLE IT_TCODE WITH KEY AGR_NAME = IT_USER_ROLE-AGR_NAME
                                    BINARY SEARCH.
        IF SY-SUBRC = 0.
          LOOP AT IT_TCODE FROM SY-TABIX.
            IF IT_TCODE-AGR_NAME <> IT_USER_ROLE-AGR_NAME.
              EXIT.
            ENDIF.
            IT_DATA-TCODE = IT_TCODE-TCODE.
            IT_DATA-TEXT = IT_TCODE-TEXT.
            APPEND IT_DATA.
          ENDLOOP.
        ELSE.
          APPEND IT_DATA.
        ENDIF.
      ENDLOOP.
    ELSE.
      APPEND IT_DATA.
    ENDIF.
    CLEAR IT_DATA.
  ENDLOOP.
ENDFORM.                    " PROCESS_DATA
*&---------------------------------------------------------------------*
*&      Form  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM OUTPUT .
* build fieldcat
  PERFORM SUB_BUILD_FIELDCAT.
  PERFORM OUTPUT_ALV.
ENDFORM.                    " OUTPUT
*&---------------------------------------------------------------------*
*&      Form  SUB_BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM SUB_BUILD_FIELDCAT .
  DATA_TEXT1(40),
        L_FIELD1(40),
        L_TEXT2(40),
        L_FIEL2(40),
        L_INDEX(2) TYPE N,
        L_NO_OUT.
  DATA: FIELDCAT_LN TYPE SLIS_FIELDCAT_ALV.
  DATAS_FCAT      LIKE LINE OF IT_FCAT.
  DATA: TAB(10) TYPE C .
  DATA : COL_POS TYPE I VALUE 0.
  DEFINE M1.
    ADD 1 TO COL_POS.
    FIELDCAT_LN-FIELDNAME     = &1.
    FIELDCAT_LN-SELTEXT_L     = &2.
    FIELDCAT_LN-SP_GROUP      = &3. "group specification
    FIELDCAT_LN-OUTPUTLEN     = &4.
    FIELDCAT_LN-NO_ZERO       = &5. "write no-zero
    FIELDCAT_LN-DO_SUM        = &6.
    FIELDCAT_LN-NO_OUT        = &7.
    FIELDCAT_LN-COL_POS       = COL_POS.
    APPEND FIELDCAT_LN TO GT_FIELDCAT.
    CLEAR FIELDCAT_LN.
  END-OF-DEFINITION.

  M1 'BNAME' 'ID' 'M' '20' '' '' ''.
  M1 'NAME'  'User Name' 'M' '40' ' ' '' ''.
  M1 'DEPARTMENT' 'Department'  'M' '30' '' '' ''.
  M1 'AGR_NAME' 'Role'  'M' '40' '' '' ''.
  M1 'AGR_TEXT' 'Role name'  'M' '80' '' '' ''.
  M1 'TCODE' 'Tcode'  'M' '20' '' '' ''.
  M1 'TEXT' 'Description'  'M' '40' '' '' ''.

ENDFORM.                    " SUB_BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*&      Form  OUTPUT_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM OUTPUT_ALV .
  G_REPID = SY-REPID.
  PERFORM EVENTTAB_BUILD USING GT_EVENTS[].
*"List Header for Top-Of-Page
  PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].

  GS_LAYOUT-WINDOW_TITLEBAR  =
         SY-TITLE.
  GS_LAYOUT-ZEBRA = 'X'.
  GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_BACKGROUND_ID         = 'ALV_BACKGROUND'
      I_CALLBACK_PROGRAM      = G_REPID
      I_BYPASSING_BUFFER      = 'X'
      IS_LAYOUT               = GS_LAYOUT
      IT_FIELDCAT             = GT_FIELDCAT[]
*      IT_SORT                 = GS_SORT[]
      I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
      I_DEFAULT               = 'X'
      I_SAVE                  = 'A'
      IT_EVENTS               = GT_EVENTS[]
      IS_VARIANT              = ALV_VARIANT
      IS_PRINT                = ALV_PRINT
    TABLES
      T_OUTTAB                = IT_DATA.
ENDFORM.                    " OUTPUT_ALV

*&--------------------------------------------------------------------*
*&      Form  COMMENT_BUILD
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      -->LT_TOP_OF_Ptext
*---------------------------------------------------------------------*
FORM COMMENT_BUILD USING LT_TOP_OF_PAGE TYPE
                                        SLIS_T_LISTHEADER.
  DATA: LS_LINE TYPE SLIS_LISTHEADER.
  DATA_WERKS(20).
* LIST HEADING LINE: TYPE H
  CLEAR LS_LINE.
  LS_LINE-TYP  = 'H'.
* LS_LINE-KEY:  NOT USED FOR THIS TYPE
  LS_LINE-INFO = TEXT-100.
  APPEND LS_LINE TO LT_TOP_OF_PAGE.
* STATUS LINE: TYPE S
  CLEAR LS_LINE.
*  LS_LINE-TYP  = 'S'.
*  LS_LINE-KEY  = TEXT-101.
*  LOOP AT S_WERKS.
*    CONCATENATE L_WERKS ',' S_WERKS-LOW INTO L_WERKS.
*  ENDLOOP.
*  L_WERKS(1) = ''.
*  CONDENSE L_WERKS.
*
*  LS_LINE-INFO = L_WERKS.
*  APPEND LS_LINE TO LT_TOP_OF_PAGE.
*  LS_LINE-KEY  = TEXT-103.
*  LS_LINE-INFO = P_LAEDA.
*  APPEND LS_LINE TO LT_TOP_OF_PAGE.
** ACTION LINE: TYPE A
*  CLEAR LS_LINE.
*  LS_LINE-TYP  = 'A'.
** LS_LINE-KEY:  NOT USED FOR THIS TYPE
*  LS_LINE-INFO = TEXT-105.
*  APPEND LS_LINE TO LT_TOP_OF_PAGE.
ENDFORM.                    "COMMENT_BUILD
*&--------------------------------------------------------------------*
*&      Form  TOP_OF_PAGE
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      I_LOGO             = 'ASAT_LOGO'
      IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM.                    "TOP_OF_PAGE

*&--------------------------------------------------------------------*
*&      Form  EVENTTAB_BUILD
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      -->RT_EVENTS  text
*---------------------------------------------------------------------*
FORM EVENTTAB_BUILD USING RT_EVENTS TYPE SLIS_T_EVENT.
*"Registration of events to happen during list display
  DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
*
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      I_LIST_TYPE = 0
    IMPORTING
      ET_EVENTS   = RT_EVENTS.
*  READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
*                           INTO LS_EVENT.
*  IF SY-SUBRC = 0.
*    MOVE G_TOP_OF_PAGE TO LS_EVENT-FORM.
*    APPEND LS_EVENT TO RT_EVENTS.
*  ENDIF.
ENDFORM.                    "EVENTTAB_BUILD
*&--------------------------------------------------------------------*
*&      Form  USER_COMMAND
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      -->I_UCOMM    text
*      -->RS_SELFIELDtext
*---------------------------------------------------------------------*
FORM USER_COMMAND USING I_UCOMM LIKE SY-UCOMM
                      RS_SELFIELD TYPE SLIS_SELFIELD.
  FIELD-SYMBOLS: <FS> TYPE ANY,
                 <FS1> TYPE ANY.
  CASE I_UCOMM.
    WHEN 'DOUBLE'.
      READ TABLE IT_DATA INDEX RS_SELFIELD-TABINDEX.
      CHECK SY-SUBRC = 0.
      SET PARAMETER ID 'XUS' FIELD IT_DATA-BNAME.
      CALL TRANSACTION 'SU01D' AND SKIP FIRST SCREEN.
  ENDCASE.

  CLEAR I_UCOMM.
ENDFORM.                    "USER_COMMAND


P_ROLE    Only get role
S_DEPT    Department
S_GROUP    User Group
S_MGR    Floor
S_ROLE    Role
S_TCODE    Transaction Code
S_USER    User Name
T03    Selection-criterion

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



QQ|Archiver|手机版|小黑屋|www.sapbbs.com    

GMT+8, 2018-10-22 23:24 , Processed in 0.447723 second(s), 28 queries .

声明:本站严禁任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!

本站内容由网友原创或转载,如果侵犯了您的合法权益,请及时联系处理!© admin@sapbbs.com

快速回复 返回顶部 返回列表