안녕하세요,
object를 이용해서 ALV 리포트 프로그램을 만들었는데요,
리스트상에서 더블클릭시 다른 트랜잭션으로 이동하는 기능을 넣어야 하거든요.
막연하게 클래스를 이용하겠구나..하는 생각은 드는데
정확히 어떤 식으로 메소드를 구현해야 할 지 모르겠구요,
메인 프로그램의 어떤 이벤트에 넣어야 할 지도요.
이론으로만 조각조각 알고 있는 지식만으론 프로그램 하나 만들기도 수월찮네요.
능력자분들의 도움 기다립니다~
댓글 5
-
아밥퍼
2008.12.10 21:11
-
모모
2008.12.11 00:55
'BCALV_TEST_GRID_EVENTS'프로그램에서 class lcl_events_d0100의 'double_click' 부분을 살펴보세요.
'BCALV_TEST_GRID_EVENTS'이 좀 복잡한 예제이긴 해도 이것 저것 눌러보면서 각종 event 를 살펴볼 수 있는 예제입니다.
-
기쁨
2008.12.11 18:22
CLASS LCL_EVENT DEFINITION.
PUBLIC SECTION.
METHODS : HANDLE_DOUBLE_CLICK
FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
IMPORTING E_ROW
E_COLUMN.
ENDCLASS. "(LCL_EVENT DEFINITION)
CLASS LCL_EVENT IMPLEMENTATION.
METHOD HANDLE_DOUBLE_CLICK.
PERFORM DOUBLE_CLICK_100 USING E_ROW E_COLUMN.
ENDMETHOD. "handle_double_click
ENDCLASS. "LCL_EVENT IMPLEMENTATION
PERFORM DOUBLE_CLICK_100 .
CALL TRANSACTION T-CODE.
ENDPERFORM.
* CREATE OBJECT 시
CREATE OBJECT g_application.
CREATE OBJECT g_custom_c
EXPORTING
container_name = g_container_100.
CREATE OBJECT g_grid
EXPORTING i_parent = g_custom_c
i_appl_events = 'X'.
중간생략.....
SET HANDLER g_event_receiver->HANDLE_DOUBLE_CLICK FOR g_grid.
-
아저씨
2008.12.11 18:44
꼭 클래스를 이용해야하는건 아닙니다.
펑션을 이용해서 할때도..가능하구요..
sy-ucomm 값이 '&IC1' 로 들어올경우에 CALL TRANSACTION 하면..됩니다.
-
아밥소녀
2008.12.11 23:34
아~모두들 감사합니다~
덕분에 많은 도움 되었어요^^
더블클릭 이벤트를 등록하시고
해당 class 또는 form 문에서
call transaction ~~~