菜单工具栏隐藏功能按钮的小例子

菜单工具栏隐藏功能按钮的小例子

业务场景:根据用户权限判断或功能按钮进行隐藏部分功能菜单,本质都是一样的:隐藏不可使用的功能菜单。至于权限的校验,后续会继续补充,此处只简单的通过例子说明:

隐藏按钮效果:

例如:此处选择重新生成采购订单按钮,后续业务操作显示的功能菜单是比较多的,但是当选择查询采购订单按钮时,只能查询,不可操作菜单中业务的功能按钮。此处是全程使用同一个ALV界面显示所有数据。

功能按钮选择

重新生成采购订单按钮对应ALV显示的功能菜单栏:
功能菜单栏

查询采购订单按钮对应ALV显示的功能菜单栏;
隐藏的功能菜单栏

例子中已达到简单的隐藏部分功能菜单按钮效果,仅供参考。

以下是参考例子的一段ABAP代码:

FORM frm_set_status USING pt_extab TYPE slis_t_extab.
  DATA:lv_text TYPE char20,
        gr_grid       TYPE REF TO cl_gui_alv_grid.
  DATA lt_exfcode TYPE TABLE OF sy-ucomm.
"添加需要隐藏的按钮名称
  IF p_get = 'X'.
    APPEND 'CHANGE' TO lt_exfcode.
    APPEND 'CREATE' TO lt_exfcode.
    APPEND '&ALL' TO lt_exfcode.
    APPEND '&SAL' TO lt_exfcode.
  ENDIF.

  SET PF-STATUS 'STATUS001' EXCLUDING lt_exfcode.
* 获取ALV对象
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = gr_grid.

  CALL METHOD gr_grid->check_changed_data.
  CALL METHOD gr_grid->refresh_table_display.
ENDFORM.

你可能感兴趣的:(菜单工具栏隐藏功能按钮的小例子)