ALV에서 필드값이 변경될때 다른 필드의 값을 설정해주는 이벤트
data_changed 에 대해 적어보겠습니다.
아직 누군가에게 설명할 정도로 깨닫지 못했기 때문에 많은 피드백 부탁드립니다. u(_ _)u
1. 이벤트 선언
CLASS를 선언하고 data_changed 이벤트 메소드를 선언한다.
SCREENS에 PBO안에 SET HANDLER를 등록한다.
또한, ALV에서 데이터를 변경하는 경우에는 register_edit_event 메소드를 호출해서 사용해야한다.
이 메소드를 활용하면 데이터가 변경되는 시 자동 반영하게 할 수 있다.
i_event_id 에 mc_evc_modified를 넣어주면 데이터를 입력하면 자동으로 반영하지만 mc_evc_enter를 대신 입력 하면 엔터를 누른 시점에 이벤트를 타게된다.
2. 메소드 구현부
먼저, lvc_s_modi TYPE의 스트럭쳐와 변경된 필드와 같은 타입의 변수를 선언해준다.
( ls_mod_cells , lv_carrid )
1번에서 USING으로 넘겨 준 er_data_changed를 활용하여 방금 선언한 스트럭쳐에 데이터가 변경되는 인덱스 값을 저장한다.
그 후, get_cell_value 메소드를 호출하여 변경된 필드의 Value 값을 취득한다.
그리고 취득한 Value값을 활용하여 data changed 할 필드의 데이터를 가져온다.
마지막으로, modify_cell 메소드를 호출하여 가져온 data changed 데이터를 적용한다.
![]() |
![]() |
[ 결과 화면 ]
3. 다양한 필드 적용
만약, 한번에 Data changed 로 여러개의 필드 값을 바꾸고 싶을때는 Perform 안에 USING을 동적을 설정하여 modify_cell을 설정 할 수 있다.
예시 ]
'SAP > ABAP' 카테고리의 다른 글
ABAP Class에 대해 알아보자 #1 (0) | 2023.05.15 |
---|---|
FIeld-Symbol로 간편하게 코딩하기 / Loop ~ Field-Symbol (0) | 2023.03.28 |
LOOP AT GROUP BY 사용해보기 (0) | 2023.03.27 |
ALV 필드 카탈로그 자동 입력 펑션('LVC_FIELDCATALOG_MERGE ') (0) | 2023.03.19 |
코딩 없이 SELECTION-SCREEN에 ICON 넣는 법 / Selection-screen icon(No-coding) (0) | 2023.03.14 |