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 ‘> </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.