1

クリックするとドロップダウンメニューが表示されるアプリケーションツールバーにボタンを作成しようとしています。ただし、これは 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
4

1 に答える 1

1

アプリケーション ツールバーからモーダル ダイアログをトリガーすると、実装が簡単になり、ALV レイアウトの選択や、それぞれのモジュールでの財務、材料、または購買ドキュメントの選択など、確立された UI パターンに適合します。コードからわかるように、 の署名は、add_functionアイコンとテキストのみを受け入れるようにハードコードされています。

これが実現することを望みますが、ドロップダウン メニューの代わりにモーダル ダイアログを使用することをお勧めします。

于 2014-03-06T14:30:31.713 に答える