먼저... OK 코드를 강제로 생성시키려면 간단히 cl_gui_cfw=>set_new_ok_code 메소드를 호출하면 됩니다.
data: l_ucomm type sy-ucomm.
l_ucomm = 'DUMMY'.
call method cl_gui_cfw=>set_new_ok_code
exporting
new_code = l_ucomm.
이것의 응용은... 주로 Data changed 이벤트에서 화면과 인터널테이블과의 동기를 맞춰주기 위해 사용합니다.
예를들면 그리드 화면에 마라에 있는 자재코드 여러개를 쭉 복사해서 붙여 놓으면
관련된 디스크립션이나 수량정보 등을 가져오는 프로그램을 생각할 수가 있는데요...
이때 Ctrl + V 만으로 Data Change Event 가 발생이되고...
그러나...
화면의 붙여넣은 데이터는 Internal Table 에 존재하지 않습니다..
그래서 이것을 동기화 시켜주기위해 mt_modi_cells 를 이용하여 로직을 구현하여야 하는데...
이런 불편함을 덜기 위해..
ok_code 를 발생시키고 user_command 에서 받아 처리해 주면... 화면값과 iternal table 간의 동기화는
자동으로 되므로.. 애써 로직 구현을 하지 않아도 됩니다..
그리고 이 메소드를 사용하기 위해 그리드 생성시 application event 는 주면 안됩니다..
제가 간단히 만든 실 예제 참조.... 하세요..
댓글 11
-
아밥돌이
2009.03.06 19:53
-
테라스
2009.03.06 20:11
다양한곳에서 응용하면 좋겠네요 ^^ 감사합니다
-
andy
2009.03.07 00:50
진짜로 다양한곳에 활용 가능하겠네요. 좋은 자료 감사합니다.
-
박하사탕
2009.03.08 09:33
궁금했던 사항인데...유용한 정보 감사합니다. -
Mike
2009.03.10 01:04
유용하게 쓰겠읍니다. -
하오
2009.08.08 17:37
유용하게 잘보겠습니다.
-
무식한아밥퍼
2009.09.04 17:52
좋은 자료 감사합니다.
-
이동준
2009.11.17 18:57
감사합니다...
-
간바레
2010.04.16 11:56
테스트 한번 해봐야 겠네요.. -
^^ 미르 200
2010.12.12 05:51
감사합니다.
-
디카초올~
2011.12.08 21:17
감사합니다.
오 이런 방법이 캄사합니다.