일반 레포트 프로그램에서..
edit 를 써서 필드 두개를 수정 가능 하게 해주고...
그 값을 수정후에 엔터를 치게 되면 ... 다른 필드들의 값이 바뀌는 ..그런 로직을 해야 하는데..
엔터를 쳤을때 USER_COMMAND 부분으로 가질 않습니다...
ㅠㅠㅠ
댓글 5
-
썬
2008.12.15 23:16
-
whdrms11
2008.12.15 23:40
ALV_DATA_CHANGED 이벤트를 추가 하고 아래와 같이 IT를 수정 후 다시 Display 한답니다. ^^
이 이벤트를 추가 하신다는게 어떤건지 잘 모르겠습니다..
-
썬
2008.12.15 23:52
개념설명과 생성 순서는
http://e-abap.servebbs.net/zb/bbs/zboard.php?id=ONEPAPER&no=110 에 있네요.
저는 요렇게 사용합니다. ^^
1. CLASS LCL_EVENT_RECEIVER DEFINITION.를 이용하여 아래 메소드를 정의 합니다.
METHODS : HANDLE_DATA_CHANGED
FOR EV DATA_CHANGED OF CL_GUI_ALV_GRID
IMPORTING ER_DATA_CHANGED
E_ONF4_AFTER.
2. CLASS LCL_EVENT_RECEIVER IMPLEMENTATION.를 이용하여 아래 Method를 정의합니다.
METHOD HANDLE_DATA_CHANGED.
PERFORM ALV_DATA_CHANGED USING ER_DATA_CHANGED
E_ONF4_AFTER.
ENDMETHOD. "HANDLE_DATA_CHANGED
3. 이벤트 오브젝트를 생성 하신 후, 사용할 이벤트를 활성화 합니다.
DATA G_EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER .
CREATE OBJECT G_EVENT_RECEIVER.
SET HANDLER G_EVENT_RECEIVER->HANDLE_DATA_CHANGED FOR GRID. -
whdrms11
2008.12.16 00:11
온라인 프로 그램이 아닌데요... class 가 없습니다..
-
썬
2008.12.16 01:06
먼저 아래 싸이트에 가셨어 소스 복사 해서 한번 실행 해 보시겠어요?
여기 이벤트들이 잘 나와있네요 ^^.
http://askabap.blogspot.com/2008/10/complete-alv-grig-functions.html
저 같은 경우 ALV_DATA_CHANGED 이벤트를 추가 하고 아래와 같이 IT를 수정 후 다시 Display 한답니다. ^^
FORM ALV_DATA_CHANGED USING ER_DATA_CHANGED
TYPE REF TO CL_ALV_CHANGED_DATA_PROTOCOL
E_ONF4_AFTER TYPE C.
DATA : LS_GOOD TYPE LVC_S_MODI.
LOOP AT ER_DATA_CHANGED->MT_GOOD_CELLS INTO LS_GOOD.
READ TABLE GT_ALV01 INDEX LS_GOOD-ROW_ID.
GT_ALV01-FEDIT = 'X'.
MODIFY GT_ALV01 INDEX LS_GOOD-ROW_ID TRANSPORTING FEDIT.
ENDLOOP.
"변경된 Row와 Column으로 Scrolling 한다.
PERFORM P1010_ROW_SCROLL USING LS_GOOD-FIELDNAME LS_GOOD-ROW_ID.
ENDFORM. "ALV_DATA_CHANGED
참조 : 필드 catalog 설정 시 수정 할 필드에 EDIT = 'X' 속성이 적용되어야 함