BW/BPS Authority Where-Used List

2024-02-26 01:30
文章标签 list used bps bw authority

本文主要是介绍BW/BPS Authority Where-Used List,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



BW/BPS权限管理用的到,用户、权限、组织、表单各种正查反查。

ECC的拿去改改也能用。

*&---------------------------------------------------------------------*
*& Report  ZUSER_AUTH
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZUSER_AUTH.

TABLES AGR_USERS USER_ADDR ,AGR_1251,AGR_TEXTS,RSECVAL..
TYPE-POOLSslis.
DATAit_fieldcat    TYPE slis_t_fieldcat_alv.
DATAi_layout       TYPE slis_layout_alv.
DATAI_SORT  TYPE  SLIS_T_SORTINFO_ALV.

DATA GT_USERROLE LIKE TABLE OF AGR_USERS WITH HEADER LINE.
DATA GT_USERNAME LIKE TABLE OF USER_ADDR WITH HEADER LINE.

DATA GT_ROLES LIKE TABLE OF AGR_TEXTS WITH HEADER LINE.
DATA GT_1251 LIKE TABLE OF AGR_1251 WITH HEADER LINE.
DATA GT_FORMS LIKE TABLE OF UPB_PS_NAME_T WITH HEADER LINE.
DATA GT_QUERYS LIKE TABLE OF RSZELTTXT WITH HEADER LINE.
DATA GT_QUERYS_TMP LIKE TABLE OF RSRREPDIR WITH HEADER LINE.
DATA GT_TCDS LIKE TABLE OF TSTCT WITH HEADER LINE.
DATA GT_RSECVAL LIKE TABLE OF RSECVAL WITH HEADER LINE.
DATA GT_RSECTXT LIKE TABLE OF RSECTXT WITH HEADER LINE.
DATA GT_RSDIOBJT LIKE TABLE OF RSDIOBJT WITH HEADER LINE.

DATA BEGIN OF R_FORMS OCCURS 0.
  DATA NAME LIKE UPB_PS_NAME_T-NAME.
DATA END OF R_FORMS.
DATA BEGIN OF R_QUERYS OCCURS 0.
  DATA COMPID LIKE RSRREPDIR-COMPID.
DATA END OF R_QUERYS.
DATA BEGIN OF R_TCDS OCCURS 0.
  DATA TCODE LIKE TSTCT-TCODE.
DATA END OF R_TCDS.
DATA BEGIN OF R_ANA OCCURS 0.
  DATA TCTAUTH LIKE RSECVAL-TCTAUTH.
DATA END OF R_ANA.

DATABEGIN OF GT_ALV OCCURS 0.

  INCLUDE STRUCTURE GT_1251.
  DATA BNAME LIKE USER_ADDR-BNAME.
  DATA NAME_LAST LIKE USER_ADDR-NAME_LAST.
  DATA TEXT LIKE AGR_TEXTS-TEXT.
  DATA AUTH_TEXT_LOW(40TYPE C.
  DATA AUTH_TEXT_HIGH(40TYPE C.

  DATA TCTIOBJNM TYPE  RSIOBJNM.
  DATA TCTSIGN TYPE  RALDB_SIGN.
  DATA TCTOPTION TYPE  RSZ_OPERATOR.
  DATA TCTLOW TYPE  RSCHAVL.
  DATA TCTHIGH TYPE  RSCHAVL.
  DATA TXTSH TYPE RSDIOBJT-TXTSH.
DATA END OF GT_ALV.



SELECTION-SCREEN BEGIN OF BLOCK blk01 WITH FRAME TITLE TEXT-001.
  PARAMETERS P_USER TYPE RADIOBUTTON GROUP R0.
  SELECT-OPTIONS:S_BNAME FOR USER_ADDR-BNAME.
  PARAMETERS P_AUTH TYPE RADIOBUTTON GROUP R0 DEFAULT 'X'.



  SELECT-OPTIONSS_ROLE FOR AGR_TEXTS-AGR_NAME ."DEFAULT 'Z*'.
  SELECT-OPTIONSS_LOW FOR AGR_1251-LOW ."DEFAULT 'Z*'.
  PARAMETERS P_LANG LIKE AGR_TEXTS-SPRAS OBLIGATORY DEFAULT SY-LANGU.
SELECTION-SCREEN END OF BLOCK blk01.
SELECTION-SCREEN BEGIN OF BLOCK blk02 WITH FRAME TITLE TEXT-002.

  PARAMETERS P0 TYPE RADIOBUTTON GROUP R1 DEFAULT 'X'."ALL
  PARAMETERS P1 TYPE RADIOBUTTON GROUP R1 ."QUERY
  PARAMETERS P2 TYPE RADIOBUTTON GROUP R1 ."FORM
  PARAMETERS P3 TYPE RADIOBUTTON GROUP R1 ."TCODE
  PARAMETERS P4 TYPE RADIOBUTTON GROUP R1 ."Analysis
  PARAMETERS P5 TYPE RADIOBUTTON GROUP R1 ."HR COMP
  SELECT-OPTIONS P_OBJ FOR AGR_1251-OBJECT NO-DISPLAY.
  SELECT-OPTIONS P_FLD FOR AGR_1251-FIELD NO-DISPLAY.

  PARAMETERS P4_DTL TYPE AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK blk02.

AT SELECTION-SCREEN.
  PERFORM CHECK_VAR.

START-OF-SELECTION.

IF P_USER EQ 'X'.
  PERFORM GET_USER_AUTH.
  IF GT_USERROLE[] IS INITIAL.
    MESSAGE 'NO-DATA' TYPE 'S' .
    EXIT.
  ENDIF.
ENDIF.

PERFORM INITIAL_VAR.
PERFORM select_data.
PERFORM PROCESS_DATA.
PERFORM show_data.

FORM INITIAL_VAR .
  IF P1 'X'.
    P_OBJ-LOW 'S_RS_COMP'.
    P_FLD-LOW 'RSZCOMPID'.
  ENDIF.
  IF P2 'X'.
    P_OBJ-LOW 'R_PM_NAME'.
    P_FLD-LOW 'PM_NAME'.
  ENDIF.
  IF P3 'X'.
    P_OBJ-LOW 'S_TCODE'.
    P_FLD-LOW 'TCD'.
  ENDIF.
  IF P4 'X'.
    P_OBJ-LOW 'S_RS_AUTH'.
    P_FLD-LOW 'BIAUTH'.
  ENDIF.
  IF P5 'X'.
    P_OBJ-LOW 'ZBUKRS'.
    P_FLD-LOW 'ZCOMP_CODE'.
  ENDIF.

  IF P_OBJ-LOW NE ''.
    P_OBJ-SIGN 'I'.
    P_OBJ-OPTION 'EQ'.
    APPEND P_OBJ.
    P_FLD-SIGN 'I'.
    P_FLD-OPTION 'EQ'.
    APPEND P_FLD.
  ENDIF.
ENDFORM.                    " INITIAL_VAR

FORM select_data .

  IF P_USER EQ 'X'.
    SELECT INTO TABLE GT_ROLES FROM AGR_TEXTS
      FOR ALL ENTRIES IN GT_USERROLE
      WHERE AGR_NAME GT_USERROLE-AGR_NAME
      AND AGR_NAME LIKE 'Z%'
      AND AGR_NAME IN S_ROLE
      AND SPRAS EQ P_LANG.

    SELECT INTO TABLE GT_1251 FROM AGR_1251
      FOR ALL ENTRIES IN GT_USERROLE
      WHERE AGR_NAME GT_USERROLE-AGR_NAME
      AND AGR_NAME LIKE 'Z%'
      AND AGR_NAME IN S_ROLE
      AND OBJECT IN
      ('R_PM_NAME','S_RS_AUTH','S_RS_COMP','S_RS_ICUBE','S_RS_ICUBE','S_TCODE','ZBUKRS')
      AND OBJECT IN P_OBJ
      AND FIELD IN
      ('PM_NAME','BIAUTH','RSZCOMPID','TCD','ZCOMP_CODE')
      AND FIELD IN P_FLD
      AND LOW IN S_LOW.
  ELSE.
    SELECT INTO TABLE GT_ROLES FROM AGR_TEXTS
      WHERE AGR_NAME LIKE 'Z%'
      AND AGR_NAME IN S_ROLE
      AND SPRAS EQ P_LANG.

    SELECT INTO TABLE GT_1251 FROM AGR_1251
      WHERE AGR_NAME LIKE 'Z%'
      AND AGR_NAME IN S_ROLE
      AND OBJECT IN
      ('R_PM_NAME','S_RS_AUTH','S_RS_COMP','S_RS_ICUBE','S_RS_ICUBE','S_TCODE','ZBUKRS')
      AND OBJECT IN P_OBJ
      AND FIELD IN
      ('PM_NAME','BIAUTH','RSZCOMPID','TCD','ZCOMP_CODE')
      AND FIELD IN P_FLD
      AND LOW IN S_LOW.
  ENDIF.

  IF GT_1251[] IS NOT INITIAL.
    LOOP AT GT_1251 .
      IF GT_1251-FIELD 'PM_NAME'.
        R_FORMS-NAME GT_1251-LOW.
        APPEND R_FORMS.
        CLEAR R_FORMS.
        IF GT_1251-HIGH NE ''.
          R_FORMS-NAME GT_1251-HIGH.
          APPEND R_FORMS.
          CLEAR R_FORMS.
        ENDIF.
      ENDIF.
      IF GT_1251-FIELD 'RSZCOMPID'.
        R_QUERYS-COMPID GT_1251-LOW.
        APPEND R_QUERYS.
        CLEAR R_QUERYS.
      ENDIF.
      IF GT_1251-FIELD 'TCD'.
        R_TCDS-TCODE GT_1251-LOW.
        APPEND R_TCDS.
        CLEAR R_TCDS.
      ENDIF.
      IF GT_1251-FIELD 'BIAUTH'.
        R_ANA-TCTAUTH GT_1251-LOW.
        APPEND R_ANA.
        CLEAR R_ANA.
      ENDIF.
    ENDLOOP.
  ENDIF.
  IF R_FORMS[] IS NOT INITIAL.
    SELECT INTO TABLE GT_FORMS FROM UPB_PS_NAME_T
      FOR ALL ENTRIES IN R_FORMS
      WHERE PTYPE 'UPS'
      AND LANG P_LANG
      AND NAME R_FORMS-NAME.
  ENDIF.
  IF R_QUERYS[] IS NOT INITIAL.
    SELECT INTO TABLE GT_QUERYS_TMP FROM RSRREPDIR
      FOR ALL ENTRIES IN R_QUERYS
      WHERE COMPID R_QUERYS-COMPID
      AND OBJVERS 'A'.
  ENDIF.
  IF GT_QUERYS_TMP[] IS NOT INITIAL.
    SELECT INTO TABLE GT_QUERYS FROM RSZELTTXT
      FOR ALL ENTRIES IN GT_QUERYS_TMP
      WHERE ELTUID GT_QUERYS_TMP-COMPUID
      AND OBJVERS 'A'
      AND LANGU P_LANG.
  ENDIF.
  IF R_TCDS[] IS NOT INITIAL.
    SELECT INTO TABLE GT_TCDS FROM TSTCT
      FOR ALL ENTRIES IN R_TCDS
      WHERE TCODE R_TCDS-TCODE
      AND SPRSL P_LANG.
  ENDIF.
  IF R_ANA[] IS NOT INITIAL.
    SELECT INTO TABLE GT_RSECVAL FROM RSECVAL
      FOR ALL ENTRIES IN R_ANA
      WHERE TCTAUTH R_ANA-TCTAUTH.

    SELECT INTO TABLE GT_RSECTXT FROM RSECTXT
      FOR ALL ENTRIES IN R_ANA
      WHERE TCTAUTH R_ANA-TCTAUTH
      AND TCTLANGU P_LANG.
  ENDIF.
  IF GT_RSECVAL[] IS NOT INITIAL.
    SELECT INTO TABLE GT_RSDIOBJT FROM RSDIOBJT
      FOR ALL ENTRIES IN GT_RSECVAL
      WHERE IOBJNM GT_RSECVAL-TCTIOBJNM
      AND LANGU P_LANG.
  ENDIF.

ENDFORM.
FORM process_data.
  SORT GT_ROLES BY AGR_NAME.
  SORT GT_FORMS BY NAME.
  SORT GT_QUERYS_TMP BY COMPID.
  SORT GT_QUERYS BY ELTUID.
  SORT GT_TCDS BY TCODE.
  SORT GT_RSECTXT BY TCTAUTH.
  SORT GT_RSDIOBJT BY IOBJNM.
  SORT GT_USERNAME BY BNAME.
  SORT GT_USERROLE BY UNAME AGR_NAME.
  IF P_USER EQ 'X'.
    LOOP AT GT_USERROLE.
      LOOP AT GT_1251 WHERE AGR_NAME EQ GT_USERROLE-AGR_NAME.
        MOVE GT_1251 TO GT_ALV .
        GT_ALV-BNAME GT_USERROLE-UNAME.
        READ TABLE GT_USERNAME WITH KEY BNAME GT_ALV-BNAME BINARY SEARCH.
        IF SY-SUBRC EQ 0.
          GT_ALV-NAME_LAST GT_USERNAME-NAME_LAST.
        ENDIF.
        READ TABLE GT_ROLES WITH KEY AGR_NAME GT_ALV-AGR_NAME BINARY SEARCH.
        IF SY-SUBRC 0.
          GT_ALV-TEXT GT_ROLES-TEXT.
        ENDIF.
        CASE GT_1251-FIELD.
          WHEN 'PM_NAME'.
            READ TABLE GT_FORMS WITH KEY NAME GT_1251-LOW BINARY SEARCH .
            IF SY-SUBRC 0.
              GT_ALV-AUTH_TEXT_LOW GT_FORMS-TEXT.
            ENDIF.
            IF GT_1251-HIGH NE ''.
              READ TABLE GT_FORMS WITH KEY NAME GT_1251-HIGH BINARY SEARCH .
              IF SY-SUBRC 0.
                GT_ALV-AUTH_TEXT_HIGH GT_FORMS-TEXT.
              ENDIF.
            ENDIF.
            GT_ALV-FIELD 'FOLDER'.
            APPEND GT_ALV.
          WHEN 'RSZCOMPID'.
            READ TABLE GT_QUERYS_TMP WITH KEY COMPID GT_1251-LOW BINARY SEARCH .
            IF SY-SUBRC 0.
              READ TABLE GT_QUERYS WITH KEY ELTUID GT_QUERYS_TMP-COMPUID BINARY SEARCH.
              IF SY-SUBRC 0.
                GT_ALV-AUTH_TEXT_LOW GT_QUERYS-TXTLG.
              ENDIF.
            ENDIF.
            GT_ALV-FIELD 'REPORT'.
            APPEND GT_ALV.
          WHEN 'TCD'.
            READ TABLE GT_TCDS WITH KEY TCODE GT_1251-LOW BINARY SEARCH .
            IF SY-SUBRC 0.
              GT_ALV-AUTH_TEXT_LOW GT_TCDS-TTEXT.
            ENDIF.
            GT_ALV-FIELD 'T-CODE'.
            APPEND GT_ALV.
          WHEN 'BIAUTH'.
            READ TABLE GT_RSECTXT WITH KEY TCTAUTH GT_1251-LOW BINARY SEARCH .
            IF SY-SUBRC 0.
              GT_ALV-AUTH_TEXT_LOW GT_RSECTXT-TCTTXTSH.
            ENDIF.
            GT_ALV-FIELD 'ORGAUTH'.

            IF P4_DTL EQ 'X' AND GT_1251-LOW NE '0BI_ALL'.
              LOOP AT GT_RSECVAL WHERE TCTAUTH GT_1251-LOW.
                MOVE-CORRESPONDING GT_RSECVAL TO GT_ALV.
                CLEAR GT_ALV-TXTSH.
                READ TABLE GT_RSDIOBJT WITH KEY IOBJNM GT_RSECVAL-TCTIOBJNM BINARY SEARCH.
                IF SY-SUBRC 0.
                  GT_ALV-TXTSH GT_RSDIOBJT-TXTSH.
                ENDIF.
                APPEND GT_ALV.
              ENDLOOP.
            ELSE.
              APPEND GT_ALV.
            ENDIF.

          WHEN OTHERS.
            APPEND GT_ALV.
        ENDCASE.
      ENDLOOP.
    ENDLOOP.
  ELSE.
    LOOP AT GT_1251.
      MOVE GT_1251 TO GT_ALV .
      READ TABLE GT_ROLES WITH KEY AGR_NAME GT_ALV-AGR_NAME BINARY SEARCH.
      IF SY-SUBRC 0.
        GT_ALV-TEXT GT_ROLES-TEXT.
      ENDIF.
      CASE GT_1251-FIELD.
        WHEN 'PM_NAME'.
          READ TABLE GT_FORMS WITH KEY NAME GT_1251-LOW BINARY SEARCH .
          IF SY-SUBRC 0.
            GT_ALV-AUTH_TEXT_LOW GT_FORMS-TEXT.
          ENDIF.
          IF GT_1251-HIGH NE ''.
            READ TABLE GT_FORMS WITH KEY NAME GT_1251-HIGH BINARY SEARCH .
            IF SY-SUBRC 0.
              GT_ALV-AUTH_TEXT_HIGH GT_FORMS-TEXT.
            ENDIF.
          ENDIF.
          GT_ALV-FIELD 'FOLDER'.
          APPEND GT_ALV.
        WHEN 'RSZCOMPID'.
          READ TABLE GT_QUERYS_TMP WITH KEY COMPID GT_1251-LOW BINARY SEARCH .
          IF SY-SUBRC 0.
            READ TABLE GT_QUERYS WITH KEY ELTUID GT_QUERYS_TMP-COMPUID BINARY SEARCH.
            IF SY-SUBRC 0.
              GT_ALV-AUTH_TEXT_LOW GT_QUERYS-TXTLG.
            ENDIF.
          ENDIF.
          GT_ALV-FIELD 'REPORT'.
          APPEND GT_ALV.
        WHEN 'TCD'.
          READ TABLE GT_TCDS WITH KEY TCODE GT_1251-LOW BINARY SEARCH .
          IF SY-SUBRC 0.
            GT_ALV-AUTH_TEXT_LOW GT_TCDS-TTEXT.
          ENDIF.
          GT_ALV-FIELD 'T-CODE'.
          APPEND GT_ALV.
        WHEN 'BIAUTH'.
          READ TABLE GT_RSECTXT WITH KEY TCTAUTH GT_1251-LOW BINARY SEARCH .
          IF SY-SUBRC 0.
            GT_ALV-AUTH_TEXT_LOW GT_RSECTXT-TCTTXTSH.
          ENDIF.
          GT_ALV-FIELD 'ORGAUTH'.

          IF P4_DTL EQ 'X' AND GT_1251-LOW NE '0BI_ALL'.
            LOOP AT GT_RSECVAL WHERE TCTAUTH GT_1251-LOW.
              MOVE-CORRESPONDING GT_RSECVAL TO GT_ALV.
              CLEAR GT_ALV-TXTSH.
              READ TABLE GT_RSDIOBJT WITH KEY IOBJNM GT_RSECVAL-TCTIOBJNM BINARY SEARCH.
              IF SY-SUBRC 0.
                GT_ALV-TXTSH GT_RSDIOBJT-TXTSH.
              ENDIF.
              APPEND GT_ALV.
            ENDLOOP.
          ELSE.
            APPEND GT_ALV.
          ENDIF.

        WHEN OTHERS.
          APPEND GT_ALV.
      ENDCASE.
    ENDLOOP.
  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 .
IF P_USER 'X'.
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' '' 'BNAME' 'User' '' 'L' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' '' 'NAME_LAST' 'User_Name' '' 'L' .
ENDIF.
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING 'AGR_TEXTS' '' 'AGR_NAME' 'Role_Name' '' 'L' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING 'AGR_TEXTS' '' 'TEXT' 'Role_Text' '' 'L' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING 'AGR_1251' '' 'FIELD' 'Auth_Type' '' 'L' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING 'AGR_1251' '' 'LOW' 'Auth_From' '' 'L' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING 'RSZELTTXT' 'TXTLG' 'AUTH_TEXT_LOW' 'Auth_From_Text' '' 'L' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING 'AGR_1251' '' 'HIGH' 'Auth_To' '' 'L' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING 'RSZELTTXT' 'TXTLG' 'AUTH_TEXT_HIGH' 'Auth_To_Text' '' 'L' .
*PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'OBJECT' 'OBJECT' '' 'L' .
*PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'AUTH' 'AUTH' '' 'L' .
*PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'VARIANT' 'VARIANT' '' 'L' .
IF P4_DTL EQ 'X'.
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING 'RSDIOBJT' 'IOBJNM' 'TCTIOBJNM' 'InfoObj' '' 'L' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING 'RSDIOBJT' 'TXTSH' 'TXTSH' 'Obj_Text' '' 'L' .

*PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'TCTSIGN' 'SIGN' '' 'L' .
*PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' 'TCTOPTION' 'OPTION' '' 'L' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' '' 'TCTLOW' 'Org_From' '' 'L' .
PERFORM sub_fill_fieldcat_alv TABLES it_fieldcat USING '' '' 'TCTHIGH' 'Org_To' '' 'L' .
ENDIF.


ENDFORM.

FORM sub_fill_fieldcat_alv  TABLES lt_fieldcat TYPE slis_t_fieldcat_alv
  USING ref_tabname ref_fieldname fieldname fieldlabel p_hotspot p_just.
  DATAws_fieldcat TYPE slis_fieldcat_alv .
  DATAw_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.
  IF ref_fieldname <> space.
    ws_fieldcat-ref_fieldname ref_fieldname.
  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  .
  IF P_USER 'X'.
    ADD TO L_SORT-spos .
    L_SORT-fieldname 'BNAME' .
    APPEND L_SORT TO I_SORT.

    ADD TO L_SORT-spos .
    L_SORT-fieldname 'NAME_LAST' .
    APPEND L_SORT TO I_SORT.
  ENDIF.

  L_SORT-fieldname 'AGR_NAME' .
  APPEND L_SORT TO I_SORT.

  ADD TO L_SORT-spos .
  L_SORT-fieldname 'TEXT' .
  APPEND L_SORT TO I_SORT.

  ADD TO L_SORT-spos .
  L_SORT-fieldname 'FIELD' .
  APPEND L_SORT TO I_SORT.

  ADD TO L_SORT-spos .
  L_SORT-fieldname 'LOW' .
  APPEND L_SORT TO I_SORT.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  GET_USER_AUTH
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_USER_AUTH .
  SELECT INTO TABLE GT_USERROLE
    FROM AGR_USERS
    WHERE UNAME IN S_BNAME.
  SELECT INTO TABLE GT_USERNAME
    FROM USER_ADDR
    WHERE BNAME IN S_BNAME.
ENDFORM.                    " GET_USER_AUTH
*&---------------------------------------------------------------------*
*&      Form  CHECK_VAR
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CHECK_VAR .
  IF P_USER 'X'.
    IF S_BNAME IS INITIAL AND
      S_ROLE IS INITIAL AND S_LOW IS INITIAL ).
      MESSAGE '什么都不填,查询结果过多,性能可能不好' TYPE 'W' .
    ENDIF.
  ENDIF.
ENDFORM.                    " CHECK_VAR

这篇关于BW/BPS Authority Where-Used List的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/747298

相关文章

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

Collection List Set Map的区别和联系

Collection List Set Map的区别和联系 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

List list = new ArrayList();和ArrayList list=new ArrayList();的区别?

List是一个接口,而ArrayList 是一个类。 ArrayList 继承并实现了List。 List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。而ArrayList list=new ArrayList();创建一对象则保留了A

处理List采用并行流处理时,通过ForkJoinPool来控制并行度失控的问题

在使用parallelStream进行处理list时,如不指定线程池,默认的并行度采用cpu核数进行并行,这里采用ForJoinPool来控制,但循环中使用了redis获取key时,出现失控。具体上代码。 @RunWith(SpringRunner.class)@SpringBootTest(classes = Application.class)@Slf4jpublic class Fo

Java中集合类Set、List和Map的区别

Java中的集合包括三大类,它们是Set、List和Map,它们都处于java.util包中,Set、List和Map都是接口,它们有各自的实现类。Set的实现类主要有HashSet和TreeSet,List的实现类主要有ArrayList,Map的实现类主要有HashMap和TreeMap。那么它们有什么区别呢? Set中的对象不按特定方式排序,并且没有重复对象。但它的有些实现类能对集合中的对

List对象过滤

List materialInventoryList = materialInventories.stream().filter(mat -> mat.getQty().compareTo(BigDecimal.ZERO) > 0).collect(Collectors.toList()); stream().filter()方法可以过滤掉List的数据

c++stack和list 介绍

stack介绍 堆栈是一种容器适配器,专门设计用于在 LIFO 上下文(后进先出)中运行,其中元素仅从容器的一端插入和提取。 堆栈作为容器适配器实现,容器适配器是使用特定容器类的封装对象作为其基础容器 的类,提供一组特定的成员函数来访问其元素。元素从特定容器的 “back” 推送或弹出,这称为堆栈的顶部。 stack接口 stack() 构造空的栈 empty() 检测stack是否为

C++——list的实现

目录 0.前言 1.节点类  2.迭代器类  ①普通迭代器 ②const迭代器  ③模板迭代器 3.list类  3.1 clear、析构函数、swap ①clear ② 析构函数  ③ swap 3.2构造函数  ①无参构造  ②赋值构造 3.3 迭代器 3.4插入函数 ①insert插入 ②头插 ③尾插 3.5 删除函数 ①erase删除 ②头删

Python中如何实现列表推导式(List Comprehension)

Python中的列表推导式(List Comprehension)是一种简洁且高效的方式来创建列表。它不仅让代码更加简洁,而且通常比使用循环和条件语句生成列表更快。列表推导式的基本形式允许你从现有的列表或其他可迭代对象中创建新的列表,同时应用过滤和转换操作。下面我将详细解释列表推导式的概念、基本语法、高级用法以及其在实际应用中的优势。 一、列表推导式的基本概念 列表推导式是Python中的一种