ABAP ALV TOOLBAR 自定義按鈕的型別以及listmenu按鈕
3.新增自定義的按鈕和響應命令
我們在ALV的工具條上增加一些按鈕來增加我們自定義的功能,當然也可以在GUI狀態中增加,2種的處理方式是不一樣的.
我們通過toolbar事件來增加按鈕,然後通過user_command事件來實現我們自定義的功能.
在TOOLBAR事件裡,我們把自定義的按鈕加到引數"e_object"的表屬性"mt_toolbar"中可以了.下面是一段示例程式碼:
FORM. handle_toolbar USING i_object TYPE REF TO cl_alv_event_toolbar_set.
DATA: ls_toolbar TYPE stb_button.
CLEAR ls_toolbar.
MOVE 3 TO ls_toolbar-butn_type.
APPEND ls_toolbar TO i_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 'PER' TO ls_toolbar-function.
MOVE icon_display_text TO ls_toolbar-icon.
MOVE 'Passenger Info'(201) TO ls_toolbar-quickinfo.
MOVE 'Passenger Info'(201) TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO i_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 'EXCH' TO ls_toolbar-function.
MOVE 2 TO ls_toolbar-butn_type.
MOVE icon_calculation TO ls_toolbar-icon.
MOVE 'Payment in other Curencies'(202) TO ls_toolbar-quickinfo.
MOVE ' ' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disapbled.
APPEND ls_toolbar TO i_object->mt_toolbar.
ENDFORM.
增加自定義按鈕的結構如下:
Field |
Description |
FUNCTION |
功能程式碼 |
BUTN_TYPE |
按鈕型別
可用的按鈕型別:
0 Button(normal)
1 Menu and default button
2 Menu
3 分割符
4 Radio button
5 Checkbox
6 Menu entry |
ICON |
按鈕圖示(可選) |
TEXT |
按鈕文字(可選) |
QUICKINFO |
按鈕的懸停文字(可選) |
DISABLED |
灰化 |
在上面的程式碼例子裡,我們增加了一個常規的按鈕和一個含有選單的按鈕.通過把按鈕的型別設定為1或者2,我們可以增加一個含有選單的按鈕,在事件menu_button還可以實現子選單:
FORM. handle_menu_button USING i_object TYPE REF TO cl_ctmenu
I_ucomm TYPE syucomm..
CASE i_ucomm.
WHEN ‘EXCH’.
CALL METHOD i_object->add_function
EXPORTING
Fcode = ‘EU’
Text = ‘Euro’.
CALL METHOD i_object->add_function
EXPORTING
Fcode = ‘TRL’
Text = ‘Turkish Lira’.
ENDCASE.
ENDFORM.
為了實現這些自定義的按鈕的功能,我們使用USER_COMMAND事件來處理.
FORM. handle_user_command USING i_ucomm TYPE syucomm.
DATA lt_selected_rows TYPE lvc_t_rowid.
DATA ls_selected_row TYPE lvc_s_roid.
CALL METHOD gr_alvgrid->get_selected_rows
IMPORTING
Et_row_no = lt_selected_rows.
READ TABLE lt_selected_rows INTO ls_selected_row INDEX 1.
If sy-subrc ne 0.
MESSAGE S000(su) WITH 'Select a row'(203).
ENDIF.
CASE i_ucomm.
WHEN 'CAR'.
READ TABLE gt_list INDEX ls_selected_row-row_id.
IF sy-subrc = 0.
CALL FUNCTION 'ZDISPLAY_CARRIER_INFO'
EXPORTING carrid = gt_list-carrid
EXCEPTIONS carrier_not_found = 1
Oters = 2.
ENDIF.
WHEN 'EU'.
READ TABLE gt_list INDEX ls_selected_row-row_id.
IF sy-subrc = 0.
CALL FUNCTION 'ZPOPUP_CONV_CURR_ADD_DISPLAY'
EXPORTING monun = 'EU'
Quant = gt_list-paymentsum.
ENDIF.
ENDCASE.
ENDFORM.
我們通過方法get_selected_rows來獲取選擇的行.功能EXCH有2個子功能,所以我們不需要實現它.為了能顯示ALV附加的一些功能,可以在ALV例項建立的時候呼叫set_toolbar_interactive方法.
CALL METHOD gr_alv_grid->set_toolbar_interactive.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17204926/viewspace-614960/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LabVIEW的自定義按鈕View
- iOS 自定義鍵盤字母按鈕iOS
- Simple WPF: WPF 自定義按鈕外形
- 自定義View:自定義屬性(自定義按鈕實現)View
- Qt QMessageBox::information 自定義按鈕QTORM
- 按鈕上面的按鈕 (轉)
- 「HTML+CSS」--自定義按鈕樣式【004】HTMLCSS
- 「HTML+CSS」--自定義按鈕樣式【003】HTMLCSS
- antd-mobile 自定義picker按鈕樣式
- Qt自定義開關按鈕控制元件QT控制元件
- [HTML/CSS]uploadify自定義按鈕樣式HTMLCSS
- 按鈕
- Android 自定義Switch開關按鈕的樣式Android
- 自定義有多個按鈕節點的SliderViewIDEView
- 自定義一個酷炫的提交完成按鈕
- 新增了自定義的編輯和刪除按鈕
- Windows API視窗程式設計 - 自定義按鈕WindowsAPI程式設計
- 「HTML+CSS」--自定義按鈕樣式【001】HTMLCSS
- 「HTML+CSS」--自定義按鈕樣式【002】HTMLCSS
- Android 自定義實現switch開關按鈕Android
- C#自定義控制元件—旋轉按鈕C#控制元件
- 按鈕禁用
- Bootstrap 按鈕boot
- Fiori Elements List Report table 裡的普通按鈕,Global 按鈕 和 Determining 按鈕
- Windows API視窗程式設計 - 完善自定義按鈕WindowsAPI程式設計
- 如何給 SAP Fiori Elements 應用新增自定義按鈕
- 自定義按鈕 圖片標題位置隨意放置
- fastadmin新增自定義按鈕,並使用彈窗功能AST
- (五)自定義按鈕模板和設定觸發器觸發器
- 通過xml檔案實現自定義圓角按鈕,以及點選效果XML
- SAP: ALV GRID 控制之 單元格按鈕
- 修改input標籤type=file型別按鈕的值型別
- Alert Dialog "Done"按鈕定義.
- 窗體(文字框,按鈕,單選按鈕,標籤)
- 自定義view之寫一個帶刪除按鈕的EdittextView
- css自定義單選按鈕的樣式程式碼例項CSS
- 凸出按鈕的TabBartabBar
- 直播平臺搭建原始碼,qt自定義滑動按鈕原始碼QT