Class ALV 에서 데이터를 수정하면 ALV 에 설정되어 있는 Data Changed Event 가 실행되게 된다. 그런데 개발을 하다 보니 Checkbox 의 경우 기본적으로 Data Changed Event 를 타지 않아서 변경된 내용을 체크 할 수 없었다. ( 다른 필드를 수정하면 변경된 내용을 알 수 있으니 그냥 처리해도 된다. ) 그래서 왜 그런가 찾아봤더니 ALV Data Changed Event 의 경우에 1) 데이터가 변경되는 즉시 2) 데이터를 변경하고 엔터 키를 입력시 두 가지로 이벤트 발생을 조정할 수 있다.
그렇기 때문에 Checkbox 의 값이 변경된 경우 바로 Data Changed Evnet 를 실행하게 한다면 변경된 내용을 바로 사용 할 수 있다. 그리고 데이터가 변경 되자마자 Event 를 실행하게 설정을 한다면 Row 의 추가 삭제가 좀 더 용이하게 처리가 가능하다. 엔터를 기본을 해 놓으면 추가 또는 삭제가 되어도 이벤트가 실행되지 않는 경우가 있다.
참고자료 : http://scn.sap.com/thread/2009818
SET HANDLER : GO_EVENT_RECEIVER_0100->HANDLE_DATA_CHANGED FOR GO_GRID. * GO_EVENT_RECEIVER_0100->HANDLE_BUTTON_CLICK FOR GO_GRID, * GO_EVENT_RECEIVER_0100->HANDLE_DOUBLE_CLICK FOR GO_GRID. * GO_EVENT_RECEIVER_0100->ON_F4 FOR GO_GRID. " 데이터 변경시 DATA CHANGED 이벤트 호출 CALL METHOD GO_GRID->REGISTER_EDIT_EVENT EXPORTING I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_MODIFIED. * " 데이터 변경후 ENTER 입력시 DATA CHANGED 이벤트 호출 * CALL METHOD GO_GRID->REGISTER_EDIT_EVENT * EXPORTING * I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER.
위의 이벤트 옵션을 설정하고 체크박스를 체크하면 아래와 같이 Data Changed Event 가 실행된다.
Data Changed Event 가 실행되었다. 파라메터에 변경된 데이터 Row 와 변경된 데이터가 들어 있다.
MP_MOD_ROWS 에 1건의 변경된 데이터가 들어 있다.
변경된 필드의 이름과 Value 값이 저장되어 있다.
반응형
'SAP > ABAP' 카테고리의 다른 글
ABAP BDC 동일한 Work Order 수행시 오류 발생(IW32) (0) | 2015.02.05 |
---|---|
ABAP Call Screen 100 실행 후 Write 구문 출력하기 (0) | 2015.01.26 |
ABAP 텍스트 박스 ( Input Box ) Dropdown List 만들기 (0) | 2015.01.20 |
ABAP Stored Procedure 호출방법 (0) | 2015.01.15 |
ABAP 스크린 제목에 & 넣는 방법 (0) | 2014.12.16 |
ABAP Class ALV Cell 별 색상 넣기 (0) | 2014.12.10 |
ABAP 파일 업로드, 다운로드시 파일 선택 팝업 생성 (0) | 2014.11.18 |
ABAP Report 프로그램 실행시 Tcode 체크 (0) | 2014.11.17 |
ABAP Parameters 에 소숫점 및 마이너스 금액 입력 (0) | 2014.10.21 |
ABAP RANGE 변수를 PERFORM 문의 파라메터로 사용하기 (0) | 2014.09.04 |