1

因此,在参数TOOLBAR事件内部有一个表,我可以访问该表来手动更改所有按钮。CL_GUI_ALV_GRIDE_OBJECTMT_TOOLBAR

有没有比在工具栏事件中像自定义按钮一样简单地创建它们更好的方法来包含/排除工具栏中的标准按钮?

4

3 回答 3

5

类似于REUSE_ALV_GRID_DISPLAY在课堂CL_GUI_ALV_GRID上也有一种方法。

定义一个类型的表UI_FUNCTIONS和一个类型的工作区UI_FUNC

data: lt_exclude type ui_functions,
      ls_exclude type ui_func.

将要隐藏的函数的属性附加到表中:

ls_exclude = cl_gui_alv_grid=>mc_fc_sum.
append ls_exclude to lt_exclude.

标准功能的属性都以前缀 开头MC_FC_,此外,MC_MB_工具栏中还有整个菜单的前缀。

set_table_for_first_display使用带参数的方法传递表格it_toolbar_excluding

于 2012-07-09T14:12:27.977 回答
2

如果您REUSE_ALV_GRID_DISPLAY在代码中使用,这可能对您有所帮助:

call function 'REUSE_ALV_GRID_DISPLAY'
exporting
  i_callback_program       = 'ZPROGRAM'
  i_callback_pf_status_set = 'SET_PF_STATUS'
  it_fieldcat              = it_fieldcat
tables
  t_outtab                 = gt_itab.

SET_PF_STATUS应该是这样的,以便消除一些你想要的按钮。在此示例中,我将删除“SORT_UP”按钮。

form set_pf_status using rt_extab type slis_t_extab.

 data: lv_flag VALUE 'X'.

 if lv_flag is not INITIAL.

   append '&OUP' to rt_extab.

 endif.

 set pf-status 'STANDARD' excluding rt_extab.
endform.                    "set_pf_status

希望对您有所帮助。

塔尔哈

于 2012-07-09T06:57:09.967 回答
0

类 lcl_event_alv 定义。公共部分。

methods handle_toolbar for event toolbar of cl_gui_alv_grid
  importing e_object e_interactive sender.

类 lcl_event_alv 实现。

方法句柄工具栏。

delete e_object->mt_toolbar where function = '&LOCAL&INSERT_ROW'  or function = '&LOCAL&DELETE_ROW'
                                or function = '&LOCAL&APPEND'     or function = '&LOCAL&COPY'
                                or function = '&LOCAL&PASTE'      or function = '&LOCAL&CUT'
                                or function = '&LOCAL&COPY_ROW'   or function = '&LOCAL&CUT'.

最终方法。

数据:go_event 类型参考 lcl_event_alv。

create object go_event .
set handler go_event->handle_toolbar for go_grid1.

call method go_grid1->set_table_for_first_display
  exporting
    is_layout       = gd_layout
    is_variant      = value disvariant( report = sy-repid handle = 'GO_GRID1' )
    i_save          = 'A'
  changing
    it_fieldcatalog = gt_fcat1
    it_outtab       = gt_items1.
于 2021-12-31T07:13:25.503 回答