SAP ABAP ZBA_R002 查询用户下的角色

SAP  用户管理报表:查询用户下的角色

******************************************
* 查询用户下的角色(刘欣)
* 2013-5-3
* [email protected]
*******表: AGR_TCODES     角色名:AGR_NAME    事务代码:TCODE (这个表在ZBA01中使用,ZBA02中没用)
*表: AGR_USERS      角色名:AGR_NAME     用户名:UNAME
*表: V_USERNAME     用户名:BNAME        完整的人员名称:NAME_TEXT
*表: AGR_TEXTS      角色名:AGR_NAME     角色说明:TEXT
******************************************
REPORT  ZBA_R002.

TYPE-POOLS: SLIS,KCDE.
DATA: USERNAME(20) TYPE C,
      G_REPID TYPE SY-REPID,
      IT_EVENTS TYPE SLIS_T_EVENT,
      IT_FIELD TYPE SLIS_T_FIELDCAT_ALV,
      WA_FIELD TYPE SLIS_FIELDCAT_ALV,
      IT_SORT TYPE SLIS_T_SORTINFO_ALV.
INITIALIZATION.
G_REPID = SY-REPID.

DATA:BEGIN OF ITAB OCCURS 0,
       UNAME TYPE AGR_USERS-UNAME,
       NAME_TEXT TYPE V_USERNAME-NAME_TEXT,
       AGR_NAME  TYPE AGR_USERS-AGR_NAME,
       TEXT TYPE AGR_TEXTS-TEXT,
      END OF ITAB.

DATA  NAMETEXT TYPE AD_NAMTEXT.


START-OF-SELECTION.
     SELECT-OPTIONS NAME FOR USERNAME NO INTERVALS.
     SELECT-OPTIONS ZHNAME FOR NAMETEXT NO INTERVALS.
END-OF-SELECTION.

PERFORM TOSQL.
PERFORM SHOW_DATA.






*---------------------------------------------------------------------
*      Form  SHOW_DATA
*---------------------------------------------------------------------

FORM SHOW_DATA .

  DATA: WS_FIELDCAT        TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
        WS_FIELDGROUPS_TAB TYPE SLIS_T_SP_GROUP_ALV,
        WS_LAYOUT          TYPE SLIS_LAYOUT_ALV,
        WS_SORTFIELDS_TAB  TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,
        WS_EVENTS          TYPE SLIS_T_EVENT.
  DATA: NN TYPE I VALUE 0.
  DATA: TITLE TYPE LVC_TITLE.
  DATA: COLOR TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.
*
  DEFINE HOUT.
    NN = NN + 1.
    WS_FIELDCAT-COL_POS       =  NN.
    WS_FIELDCAT-TABNAME       = 'ITAB'.
    WS_FIELDCAT-KEY           = &1.
    WS_FIELDCAT-FIELDNAME     = &2.
    WS_FIELDCAT-SELTEXT_M     = &3.
    WS_FIELDCAT-CFIELDNAME    = &4.
    WS_FIELDCAT-DATATYPE      = &5.
    WS_FIELDCAT-REF_TABNAME   = &6.
    WS_FIELDCAT-REF_FIELDNAME = &7.
    WS_FIELDCAT-DO_SUM        = &8.
    WS_FIELDCAT-HOTSPOT       = &9.
    APPEND WS_FIELDCAT.
    CLEAR WS_FIELDCAT.
  END-OF-DEFINITION.

  HOUT:

''  'UNAME' '登录用户名'  ''  ''  ''  ''  ''  '',
''  'NAME_TEXT' '中文姓名'  ''  ''  ''  ''  ''  '',
'X'  'AGR_NAME' '角色'  ''  ''  ''  ''  ''  '',
'X'  'TEXT' '角色名称'  ''  ''  ''  ''  ''  ''.






  WS_LAYOUT-ZEBRA             = 'X'.
  WS_LAYOUT-GET_SELINFOS      = 'X'.
  WS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
  WS_LAYOUT-DETAIL_POPUP      = 'X'.

*******排序
  WS_SORTFIELDS_TAB-FIELDNAME = 'UNAME'.
  WS_SORTFIELDS_TAB-UP = 'X'.
  APPEND WS_SORTFIELDS_TAB.
  CLEAR WS_SORTFIELDS_TAB.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM      = SY-REPID
      I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
      IS_LAYOUT               = WS_LAYOUT
      IT_FIELDCAT             = WS_FIELDCAT[]
      IT_SPECIAL_GROUPS       = WS_FIELDGROUPS_TAB[]
      IT_SORT                 = WS_SORTFIELDS_TAB[]
      IT_EVENTS               = WS_EVENTS[]
      I_GRID_TITLE            = TITLE
      I_DEFAULT               = 'X'
      I_SAVE                  = 'A'
    TABLES
      T_OUTTAB                = ITAB[]
    EXCEPTIONS
      PROGRAM_ERROR           = 1
      OTHERS                  = 2.

ENDFORM.                    " OUTPUT_DATA



*--------------------------------
* FORM TOSQL
*--------------------------------
FORM TOSQL.
SELECT DISTINCT AGR_USERS~AGR_NAME    AGR_USERS~UNAME    V_USERNAME~NAME_TEXT   AGR_TEXTS~TEXT
         INTO CORRESPONDING FIELDS OF TABLE ITAB
        FROM AGR_USERS
            INNER JOIN V_USERNAME ON AGR_USERS~UNAME = V_USERNAME~BNAME       "加入用户全称

            INNER JOIN AGR_TEXTS ON  AGR_USERS~AGR_NAME = AGR_TEXTS~AGR_NAME     "加入角色说明
        WHERE AGR_USERS~UNAME IN NAME.
DELETE ADJACENT DUPLICATES FROM ITAB.

SORT ITAB BY  UNAME AGR_NAME .
ENDFORM.
发布了249 篇原创文章 · 获赞 85 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/ot512csdn/article/details/103147680