ABAP-AVL-OO方法中的ALV的如何自己添加按钮及其响应
生活随笔
收集整理的這篇文章主要介紹了
ABAP-AVL-OO方法中的ALV的如何自己添加按钮及其响应
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
SAP在做報(bào)表開發(fā)中,不同公司對報(bào)表的風(fēng)格往往各異,為此經(jīng)常在使用OO方法做ALV報(bào)表中需要去掉自帶的工具欄而自行添加一些工具按鈕,下面將簡單介紹一下添加按鈕及如何響應(yīng)的實(shí)現(xiàn)方法:
步驟一:創(chuàng)建一個(gè)事件處理類
CLASS?lcl_event_receiver?DEFINITION.
*?public?attributes?and?method
??PUBLIC?SECTION.
????METHODS:
?????handle_toolbar?????FOR?EVENT?toolbar?OF?cl_gui_alv_grid
???????IMPORTING
?????????e_object,
?????handle_user_command?FOR?EVENT?user_command?OF?cl_gui_alv_grid
???????IMPORTING
?????????e_ucomm,
ENDCLASS.????????????????????"lcl_event_receiver?DEFINITION 注意這個(gè)事件處理類中添加了兩個(gè)方法,第一個(gè)方法負(fù)責(zé)往工具欄上添加按鈕,第二個(gè)方法用來響應(yīng)工具欄上按鈕的動作 步驟二:類的實(shí)現(xiàn) CLASS?lcl_event_receiver?IMPLEMENTATION.
*?method?toolbar?handler
??METHOD?handle_toolbar.
???PERFORM?set_toolbar?CHANGING?e_object.
??ENDMETHOD.????????????????????"handle_toolbar ?METHOD?handle_user_command.
*???Handle?own?functions?defined?in?the?toolbar
????CASE?e_ucomm.
??????WHEN?'ADD'.
???????PERFORM?xyz. “這里你想干嘛就可以干嘛
????ENDCASE.
??ENDMETHOD.????????????????????"handle_user_command ENDCLASS.????????????????????"lcl_event_receiver?IMPLEMENTATION 步驟三:在FORM-----set_toolbar?中添加button FORM?set_toolbar? CHANGING?prf_object?TYPE?REF?TO?cl_alv_event_toolbar_set.
??CLEAR?prf_object->mt_toolbar.
??CLEAR??gs_toolbar.
??MOVE???'ADD'????????????TO???gs_toolbar-function.
??MOVE????????????????????TO????? gs_toolbar-quickinfo.
??MOVE????????????????????TO???gs_toolbar-text.
??MOVE???'?'??????????????TO???gs_toolbar-disabled.
??INSERT?gs_toolbar???????INTO?prf_object->mt_toolbar?INDEX?1.
ENDFORM.????????????????????"?set_toolbar1 步驟四:創(chuàng)建事件處理對象--這一步一般在?grf_grid->set_table_for_first_display?之后SET?HANDLER?grf_event_receiver->handle_user_command?FOR?grf_grid.
??SET?HANDLER?grf_event_receiver->handle_toolbar ?FOR?grf_grid.
??CALL?METHOD?grf_grid->set_toolbar_interactive. 注意:STB_BUTTON結(jié)構(gòu)包含的字段 FUNCTION???????? UI_FUNC??? CHAR?70?0?Function Code
ICON???????????? ICONNAME?? CHAR?30?0?Name of an Icon
QUICKINFO??????? ICONQUICK??CHAR?30?0?Quickinfo for an icon
BUTN_TYPE??????? TB_BTYPE?? INT4?10?0?Toolbar button type
DISABLED???????? CHAR??????????? 1??0?Disabled
TEXT???????????? TEXT40?????CHAR?40?0?Text, 40 Characters Long
CHECKED????????? CHAR???????????? 1?0?Printed TB_BTYPE?的可選擇值 ,主要用來決定按鈕的類型 ? 0?Button (normal)
1?Menu and default button
2?Menu
3?Separator
4?Radio button
5?Checkbox
6?Menu entry
*?public?attributes?and?method
??PUBLIC?SECTION.
????METHODS:
?????handle_toolbar?????FOR?EVENT?toolbar?OF?cl_gui_alv_grid
???????IMPORTING
?????????e_object,
?????handle_user_command?FOR?EVENT?user_command?OF?cl_gui_alv_grid
???????IMPORTING
?????????e_ucomm,
ENDCLASS.????????????????????"lcl_event_receiver?DEFINITION 注意這個(gè)事件處理類中添加了兩個(gè)方法,第一個(gè)方法負(fù)責(zé)往工具欄上添加按鈕,第二個(gè)方法用來響應(yīng)工具欄上按鈕的動作 步驟二:類的實(shí)現(xiàn) CLASS?lcl_event_receiver?IMPLEMENTATION.
*?method?toolbar?handler
??METHOD?handle_toolbar.
???PERFORM?set_toolbar?CHANGING?e_object.
??ENDMETHOD.????????????????????"handle_toolbar ?METHOD?handle_user_command.
*???Handle?own?functions?defined?in?the?toolbar
????CASE?e_ucomm.
??????WHEN?'ADD'.
???????PERFORM?xyz. “這里你想干嘛就可以干嘛
????ENDCASE.
??ENDMETHOD.????????????????????"handle_user_command ENDCLASS.????????????????????"lcl_event_receiver?IMPLEMENTATION 步驟三:在FORM-----set_toolbar?中添加button FORM?set_toolbar? CHANGING?prf_object?TYPE?REF?TO?cl_alv_event_toolbar_set.
??CLEAR?prf_object->mt_toolbar.
??CLEAR??gs_toolbar.
??MOVE???'ADD'????????????TO???gs_toolbar-function.
??MOVE????????????????????TO????? gs_toolbar-quickinfo.
??MOVE????????????????????TO???gs_toolbar-text.
??MOVE???'?'??????????????TO???gs_toolbar-disabled.
??INSERT?gs_toolbar???????INTO?prf_object->mt_toolbar?INDEX?1.
ENDFORM.????????????????????"?set_toolbar1 步驟四:創(chuàng)建事件處理對象--這一步一般在?grf_grid->set_table_for_first_display?之后SET?HANDLER?grf_event_receiver->handle_user_command?FOR?grf_grid.
??SET?HANDLER?grf_event_receiver->handle_toolbar ?FOR?grf_grid.
??CALL?METHOD?grf_grid->set_toolbar_interactive. 注意:STB_BUTTON結(jié)構(gòu)包含的字段 FUNCTION???????? UI_FUNC??? CHAR?70?0?Function Code
ICON???????????? ICONNAME?? CHAR?30?0?Name of an Icon
QUICKINFO??????? ICONQUICK??CHAR?30?0?Quickinfo for an icon
BUTN_TYPE??????? TB_BTYPE?? INT4?10?0?Toolbar button type
DISABLED???????? CHAR??????????? 1??0?Disabled
TEXT???????????? TEXT40?????CHAR?40?0?Text, 40 Characters Long
CHECKED????????? CHAR???????????? 1?0?Printed TB_BTYPE?的可選擇值 ,主要用來決定按鈕的類型 ? 0?Button (normal)
1?Menu and default button
2?Menu
3?Separator
4?Radio button
5?Checkbox
6?Menu entry
總結(jié)
以上是生活随笔為你收集整理的ABAP-AVL-OO方法中的ALV的如何自己添加按钮及其响应的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OO-ALV标准工具栏按钮
- 下一篇: 请问在FOB条件下,订舱的具体流程是怎样