因此,在TOOLBAR
的{{1}}事件中,参数CL_GUI_ALV_GRID
具有我可以访问的表E_OBJECT
以手动更改所有按钮。
但是我不认为这是在两个似乎是ALV网格标准的状态之间切换的正确方法。
是否有更好的方法在工具栏中包含/排除标准按钮,而不是像工具栏事件中的自定义按钮那样创建它们?
谢谢,你们统治。
答案 0 :(得分:3)
与REUSE_ALV_GRID_DISPLAY相似,但在类CL_GUI_ALV_CLASS中:
定义类型为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
答案 1 :(得分:1)
如果您在代码中使用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
希望它有用。
塔尔哈