tableView 전체선택/전체해제 기능추가 방법

1. Iterator Column Definition Method에 체크박스 추가

2. Layout 스크립트에서 이벤트 핸들러 발생위한 숨김 input값과 스크립트 추가

3. OnInitialization에서 Iterator Create Object시 값 전달

4. OnInputProcessing 이벤트 핸들러에서 체크박스 헤더클릭 이벤트 구현

1. Iterator Column Definition Method에 체크박스 추가

  APPEND INITIAL LINE TO p_column_definitions ASSIGNING <fs>.

  <fs>-columnname = ‘CHK’.

  <fs>-edit       = ‘TRUE’.

  CONCATENATE ‘<center><input type=”checkbox” id=”chk_all” onClick=”fn_chk_all();”‘ gv_check ‘>&nbsp;</center>’

         INTO <fs>-title SEPARATED BY space.

  <fs>-horizontalalignment = ‘CENTER’.

2. Layout 스크립트에서 이벤트 핸들러 발생위한 숨김 input값과 스크립트 추가

<%– 체크박스 All –%>

function fn_chk_all(){

  var chk_all = document.getElementById(“chk_all”);

  if(chk_all.checked == true){

    document.getElementById(“tab_chk”).value = ‘X’;

  }else{

    document.getElementById(“tab_chk”).value = ”;

  }

}

<%– 전체선택 checkbox value 전달 –%>

<input type=”hidden” name=”tab_chk” value=”<%= application->gv_tabv_chk %>” >

3. OnInitialization에서 Iterator Create Object시 값 전달

* Table Setting

  CREATE OBJECT gcl_itr

    EXPORTING

      iv_checked      = application->gv_tabv_chk

      icl_application = application.

METHOD constructor.

  gcl_application = icl_application.

  IF iv_checked = abap_true.

    gv_check = ‘checked’.

  ELSE.

    CLEAR: gv_check.

  ENDIF.

ENDMETHOD.





4. OnInputProcessing 이벤트 핸들러에서 체크박스 헤더클릭 이벤트 구현

  WHEN ‘onHeaderClick’. ” 전체선택/전체해제.

    IF lr_tableview_event->column_key = ‘CHK’.

      lv_value = request->get_form_field( name = ‘tab_chk’ ).

      application->gv_tabv_chk = lv_value.

      LOOP AT application->gt_item1 ASSIGNING <fs_item1>.

        <fs_item1>-chk = application->gv_tabv_chk.

      ENDLOOP.

    ENDIF.