我正在尝试在应用程序工具栏中创建一个按钮,单击该按钮会显示一个下拉菜单。这是一个没有 ALV 网格的自定义屏幕,所以我不能使用 ALV 类方法。我在我的 GUI 状态中创建了按钮和 fcode,并在调用自定义屏幕时对其进行了设置,但我找不到任何方法将其转换为下拉菜单。我还有其他方法可以做到吗?
我以为我可以使用cl_gui_toolbar
add_button 方法,set_static_ctxmenu
但我不确定如何获得对正在运行的工具栏实例的引用?
到目前为止我的代码:
*----------------------------------------------------------------------*
*& Form f_handle_menu_button
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_handle_menu_button.
DATA: go_toolbar TYPE REF TO cl_gui_toolbar,
go_menu TYPE REF TO cl_ctmenu.
CALL METHOD go_toolbar->add_button
EXPORTING
fcode = '&APPLY'
icon = ''
is_disabled = ''
butn_type = 1 "Pushbutton with Menu
text = 'Apply Status'.
CREATE OBJECT go_menu.
CALL METHOD go_menu->add_function
EXPORTING
fcode = '&STATUS1'
text = 'Status1'
icon = ' '
disabled = ' '
checked = ' '
hidden = ' '.
CALL METHOD go_menu->add_function
EXPORTING
fcode = '&STATUS2'
text = 'Status2'
icon = ' '
disabled = ' '
checked = ' '
hidden = ' '.
CALL METHOD go_toolbar->set_static_ctxmenu
EXPORTING
fcode = '&APPLY'
ctxmenu = go_menu.
ENDFORM. "F_HANDLE_MENU_BUTTON