ALV Class 에서 데이터를 수정하면 자동으로
handle_data_changed 이벤트가 호출됩니다.
그런데 툴바에서 버튼을 하나 만들고 버튼을 클릭해서 ALV 화면에 데이터 값을 변경한 경우
handle_data_changed 이벤트가 발생하지 않습니다.
툴바 이벤트에서 강제적으로 handle_data_changed 이벤트를 발생시키는 방법은 어떻게 해야 할까요
* e-abap님에 의해서 게시물 복사되었습니다 (2010-01-09 13:43)
* e-abap님에 의해서 게시물 이동되었습니다 (2010-01-09 13:56)
댓글 5
-
막가레라
2010.01.08 06:23
-
준서기
2010.01.08 06:58
버튼을 눌렀을때 발생하는 이벤트는 정상적으로 작동을 합니다.
버튼을 눌르면 function 을 호출해서 값을 구해 오고 ALV 화면에
구해온 값을 보여주는 부분까지 정상 작동됩니다.
ALV 에서 값을 직접 입력할 경우에는 handle_data_changed 이벤트가 자동으로 실행되는데
사용자가 직접 키보드로 입력한 값이 아니고 프로그램에 의해서 해당 컬럼에 값이 변경된경우
handle_data_changed 이벤트가 작동을 안하는 겁니다.
-
막가레라
2010.01.08 07:45
간단히 그 프로그램에서 memory id 던지고 수정될 프로그램의 체인지 메소드의 perform문 실행시키는 방법도 있습니다. -
요요
2010.01.08 18:06
흠.. 툴바메뉴의 버튼에 해당하는 이벤트에서 메쏘드 CHECK_CHANGED_DATA 를 실행해 보세요 ^^
그냥 실행하시면 alv에 변경사항이 있을 경우 data_changed event 를 실행합니다.
g_grid->check_changed_data( ). "Verification of Changes and Triggering of Event DATA_CHANGED
-
준서기
2010.01.08 20:14
답변감사합니다.
CALL METHOD g_grid->check_changed_data( ).
를 이용하니
handle_data_changed 이벤트가 아닌
handle_data_changed_finished 이벤트를
호출하게 되네요.
일단 다른 방법으로 처리했습니다.
다시한번 답변주신 분들께 감사 드립니다.
만드신 버튼 코드값은 툴바메소드에 포함시키셨는지요?