1

我有一个用 class 定义的工具栏,cl_gui_toolbar它显示在容器中(通过 class 创建cl_gui_custom_container)。我在其中添加了一些按钮和按钮组。

现在我的用户希望其中一个按钮组更大,因为用户可能无法识别按钮在那里。有什么方法可以设置按钮组的宽度吗?

这是我当前的代码:

METHOD init_toolbar.

    DATA: lt_buttons_data TYPE ttb_button,
          ls_button_data TYPE LINE OF ttb_button.

    go_toolbar_container = NEW cl_gui_custom_container( container_name = 'TOOLBAR_1000' ).
    go_toolbar = NEW cl_gui_toolbar( parent = go_toolbar_container ).

" Some other buttons
" ...
" ...

  CLEAR ls_button_data.
  CLEAR lt_buttons_data.

  ls_button_data-function =  'DBFILTER'.
  ls_button_data-icon =      '@EX@'.
  ls_button_data-quickinfo = 'Quickinfo'.
  ls_button_data-text =      'SmallText'.
  ls_button_data-butn_type = cntb_btype_menu.
  APPEND ls_button_data TO lt_buttons_data.

  go_toolbar->add_button_group( data_table = lt_buttons_data ).

  CLEAR ct_expand.
  ct_expand = NEW cl_ctmenu( ).

  ct_expand->add_function( fcode = '1' text = '1' checked = abap_false ).
  ct_expand->add_function( fcode = '2' text = '2' checked = abap_false ).
  ct_expand->add_function( fcode = '3' text = '3' checked = abap_false ).

  CLEAR wa_ctxmenu.
  wa_ctxmenu-function = 'DBFILTER'.
  wa_ctxmenu-ctmenu = ct_expand.
  APPEND wa_ctxmenu TO table_ctxmenu.
  go_toolbar->assign_static_ctxmenu_table( table_ctxmenu = table_ctxmenu ).

ENDMETHOD.

你知道如何设置这个按钮组的宽度吗?

PS:我刚刚得到信息,如果没有其他方法,如果文本较长,可以替换按钮的文本(例如“smallText”)。

4

1 回答 1

3

不能将 CL_GUI_TOOLBAR 类中按钮的宽度自定义为像素数。

作为一种解决方法:

  • 输入更长的文本。也许在文本末尾输入“不间断空格”。这是 Unicode 字符 U+00A0 ( CL_ABAP_CONV_IN_CE=>UCCP( '00A0' ))。
  • 代替 CL_GUI_TOOLBAR,使用类 CL_GUI_HTML_VIEWER 来定义带有 HTML 代码和 CSS 样式的按钮。但我怀疑是否值得为此花时间。
于 2019-12-04T09:08:36.270 回答