클래스로 만드셧다는 말씀이시져? ^^;;
일단 클래스의 더블클릭 이벤트를 사용하시면 되여..
1. 클래스 선언한 부분 하단에 아래 소스를 일단 넣으세요.
*---------------------------------------------------------------------*
* CLASS lcl_event DEFINITION
*---------------------------------------------------------------------*
CLASS LCL_EVENT DEFINITION.
PUBLIC SECTION.
METHODS : HANDLER_DOUBLE_CLICK
FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
IMPORTING E_ROW
E_COLUMN
ES_ROW_NO.
ENDCLASS. "lcl_event DEFINITION
*---------------------------------------------------------------------*
* CLASS lcl_event IMPLEMENTATION
*---------------------------------------------------------------------*
CLASS LCL_EVENT IMPLEMENTATION.
METHOD HANDLER_DOUBLE_CLICK.
PERFORM DOUBLE_CLICK USING E_ROW E_COLUMN.
ENDMETHOD. "handler_double_click
ENDCLASS. "lcl_event IMPLEMENTATION
2. 그리고 PERFORM DOUBLE_CLICK USING E_ROW E_COLUMN. 이 부분을 더블클릭해서 form문을 생성하구여...
*&---------------------------------------------------------------------*
*& Form DOUBLE_CLICK
*&---------------------------------------------------------------------*
FORM DOUBLE_CLICK USING P_ROW
P_COLUMN.
IF P_ROW NE 0 AND P_COLUMN EQ 'XMSGS'.
READ TABLE GT_ZDSAT0052 INDEX P_ROW.
IF SY-SUBRC EQ 0.
IF GT_ZDSAT0052-ZSFLAG EQ '0'. "0:성공 1:실패
SET PARAMETER ID 'MBN' FIELD GT_ZDSAT0052-XMSGS.
CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. " DOUBLE_CLICK
3. 마지막으로 이벤트를 등록해줘야 합니다.
display 하는 부분 앞쪽 아무대나
DATA : L_EVENT TYPE REF TO LCL_EVENT.
CREATE OBJECT L_EVENT.
SET HANDLER L_EVENT->HANDLER_DOUBLE_CLICK FOR GO_GRID.
이 소스 넣으세요
이런식으로 하시면 됩니다. 저거는 지금 자재문서로 이동하는 예제입니다. ^^*
각 화면의 필드마다 ID값은 틀릴수 있으니 확인해보세여..
못 찾으시겠다면 이동하려는 화면 T-CODE 알려주시면 알려드릴꼐여
즐밥하세여~~ ^^*
http://www.storyroom.net/total_bbs/view.php?id=SAPGENERAL&no=120
>안녕하세요,
>
>object를 이용해서 ALV 리포트 프로그램을 만들었는데요,
>리스트상에서 더블클릭시 다른 트랜잭션으로 이동하는 기능을 넣어야 하거든요.
>막연하게 클래스를 이용하겠구나..하는 생각은 드는데
>정확히 어떤 식으로 메소드를 구현해야 할 지 모르겠구요,
>메인 프로그램의 어떤 이벤트에 넣어야 할 지도요.
>
>이론으로만 조각조각 알고 있는 지식만으론 프로그램 하나 만들기도 수월찮네요.
>능력자분들의 도움 기다립니다~
앗, 감사합니다~도움이 많이 되었어요^^