파일 1에 alv로 뿌려진 내용중에 맨 좌측 document num을 더블클릭하면
파일2의 사진에 보이는 fb03으로 넘어가게 만들어놨습니다.
그런데 문제가 생겼습니다^^ fb03에는 fiscal year도 넣어야 된다는 것이죠.
아래는 잘못된 소스입니다.
-------------------------------------
FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM
P_SELFIELD TYPE SLIS_SELFIELD.
CASE P_UCOMM.
WHEN '&IC1'.
CASE P_SELFIELD-fieldname.
when 'BELNR'.
SET PARAMETER ID : 'BLN' FIELD P_SELFIELD-VALUE.
* 'GJR' FIELD
CALL TRANSACTION 'FB03' and skip first screen.
WHEN OTHERS.
MESSAGE I003(ZCONRADBC13).
ENDCASE.
ENDCASE.
ENDFORM.
-----------------------------------------
gjr이 fiscal year parameter id 인데 어떻게 줄 지를 모르겠습니다.
사실 해당 필드가 아니라 해당 "라인" 어느걸 클릭하던지간에
document number (belnr에 bln) 와 fiscal year (gjahr의 bjr)이
fb03의 해당 필드들에 채워져서 skip first screen을 해야 하는데..
방법좀 알려주시겠습니까^^;;
클릭한 필드가 belnr 일때 란 조건 부터가 이미 틀린것 같아요..ㅠ_ㅜ
물론 파일 1에서 year가 fiscal year 입니다^^
구원의 손길이 필요합니다^^
아참.. 클래스를 사용하지 않았습니다.
클래스를 공부좀 해야겠네요..ㅠ_ㅜ 으헝헝
alv 에서 user_command 에 입력하고 저 구문으로 들어가게 만든거죠^^;
댓글 4
-
는는이
2010.04.15 19:58
-
예스맨
2010.04.15 20:43
READ TABLE (인터널테이블) INDEX P_SELFIEP-TABINDEX.
이렇게 읽어와서 던져주면 가능할거 같은데요.
-
Abap consultant
2010.04.15 20:45
해결했습니다^^;
혹시나 궁금하신 분들을 위해. 해결방법 올리겠습니다.
alv 부분
FORM alv_grid .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
I_CALLBACK_USER_COMMAND = 'USER_COMMAND' <-더블클릭이벤트용..
i_callback_top_of_page = slis_ev_top_of_page
is_layout = gs_layout
it_fieldcat = gt_fieldcat
it_sort = gt_sort
i_save = 'A'
TABLES
t_outtab = gt_adlist3.
* EXCEPTIONS
* PROGRAM_ERROR = 1
ENDFORM.
-----더블클릭 이벤트
FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM
P_SELFIELD TYPE SLIS_SELFIELD.
CASE P_UCOMM. "유저커맨드가
WHEN '&IC1'. " 더블클릭일때
check p_selfield-tabindex > 0. "테이블 인덱스가 0보다 큰지 체크
read table gt_adlist3 into gs_adlist index p_selfield-tabindex. "클릭한tabindex 읽어 gs_adlist에넣음
CASE P_SELFIELD-fieldname. "필드가
when 'BELNR'. "belnr일 경우
SET PARAMETER ID : 'BLN' FIELD gs_adlist-belnr. "bln 에 읽어들인 belnr 넣고
set parameter id : 'GJR' FIELD gs_adlist-gjahr. "gjr도 마찬가지
CALL TRANSACTION 'FB03' and skip first screen. "fb03 불러서 첫화면 스킵
WHEN OTHERS. "다른것들은
MESSAGE I003(ZCONRADBC13). "메시지 뿌리자. "belnr만 클릭하라고..
ENDCASE.
ENDCASE.
ENDFORM.
입니다^^ 저와 함께하는 초보님들에게 도움이 되기를..^^
-
Abap consultant
2010.04.15 20:46
예스맨님 답변 감사드려요^^ 그것이 바로 정답이더군요!! ㅎ
call method g_grid->get_current_cell 메소드로 선택한 라인 찾아서 해당라인의 연도를
set parameter id 'GJR' field (xxx) 로 넘겨주시면 될것 같은데요?