본문 바로가기

ABAP 물타기/ALV

ALV : Event (Refresh button event at ALV toolbar)

  • 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.


  
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.


  
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.

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