- Create Date : 2010-06-17
- Change Date : 2010-06-17
잡담 -ㅂ-;
Event는 윈리만 알면 쉽다.
선언하구, 메소드 정의하고, 메소드 등록해주고~
연애도 Event같이 쉬웠음 좋겠다 ㅜ ㅜ
EVENT
- 이벤트선언 : 다음 위치에서 조회 할수 있다. (SE24->CL_GUI_ALV_GRID->Events tab)
- 이벤트 핸들러 메소드 정의 : 이벤트 발생시 action을 정의 한다.
- 이벤트 핸들러 메소드 등록 : 이벤트가 발생할 grid에 해당 이벤트를 등록한다.
Ceate Refresh Button Event
1. variables
type-pools : icon.
2. event definition
class lcl_event_receiver definition.
public section.
methods : handle_double_click
for event double_click of cl_gui_alv_grid
importing e_row e_column.
methods : handle_toolbar
for event toolbar of cl_gui_alv_grid
importing e_object e_interactive.
methods : handle_user_command
for event user_command of cl_gui_alv_grid
importing e_ucomm.
endclass.
public section.
methods : handle_double_click
for event double_click of cl_gui_alv_grid
importing e_row e_column.
methods : handle_toolbar
for event toolbar of cl_gui_alv_grid
importing e_object e_interactive.
methods : handle_user_command
for event user_command of cl_gui_alv_grid
importing e_ucomm.
endclass.
3. event implementation
class lcl_event_receiver implementation.
method : handle_double_click.
clear gsvbak.
READ TABLE gtvbak index e_row into gsvbak.
if sy-subrc = 0.
select *
into CORRESPONDING FIELDS OF TABLE gtvbap
from vbap
where vbeln = gsvbak-vbeln.
perform refresh_grid2.
endif.
endmethod.
method : handle_toolbar.
data ls_toolbar type stb_button.
clear ls_toolbar.
ls_toolbar-butn_type = 3.
append ls_toolbar to e_object->mt_toolbar.
clear ls_toolbar.
ls_toolbar-function = 'RESH'.
ls_toolbar-icon = icon_refresh.
ls_toolbar-quickinfo = 'Refresh'.
ls_toolbar-text = ''.
ls_toolbar-disabled = ''.
append ls_toolbar to e_object->mt_toolbar.
endmethod.
method : handle_user_command.
case e_ucomm.
when 'RESH'.
perform get_so_data.
perform refresh_grid1.
endcase.
endmethod.
endclass.
data : event_receiver type ref to lcl_event_receiver.
method : handle_double_click.
clear gsvbak.
READ TABLE gtvbak index e_row into gsvbak.
if sy-subrc = 0.
select *
into CORRESPONDING FIELDS OF TABLE gtvbap
from vbap
where vbeln = gsvbak-vbeln.
perform refresh_grid2.
endif.
endmethod.
method : handle_toolbar.
data ls_toolbar type stb_button.
clear ls_toolbar.
ls_toolbar-butn_type = 3.
append ls_toolbar to e_object->mt_toolbar.
clear ls_toolbar.
ls_toolbar-function = 'RESH'.
ls_toolbar-icon = icon_refresh.
ls_toolbar-quickinfo = 'Refresh'.
ls_toolbar-text = ''.
ls_toolbar-disabled = ''.
append ls_toolbar to e_object->mt_toolbar.
endmethod.
method : handle_user_command.
case e_ucomm.
when 'RESH'.
perform get_so_data.
perform refresh_grid1.
endcase.
endmethod.
endclass.
data : event_receiver type ref to lcl_event_receiver.
4. set handler
create object event_receiver.
set handler event_receiver->handle_double_click for grid1.
set handler event_receiver->handle_toolbar for grid1.
set handler event_receiver->handle_user_command for grid1.
set handler event_receiver->handle_double_click for grid1.
set handler event_receiver->handle_toolbar for grid1.
set handler event_receiver->handle_user_command for grid1.
Result
'ABAP 물타기 > ALV' 카테고리의 다른 글
| ALV : Layout Other Method (0) | 2010.08.15 |
|---|---|
| ALV : Select Layout (at selection-screen 이벤트에 Possible Entry) (0) | 2010.07.04 |
| SAP TREE : Simple Tree (0) | 2010.06.24 |
| ALV : Edit ALV (update) (0) | 2010.06.18 |
| ALV : Layout (0) | 2010.06.17 |