안녕하세요!!
아밥 초급인데, 정말 하다가 몰라서 말씀드려요!!
데이터 조회시 해당 데이터를 클릭하였을 때, 링크하는 방법이 없을까요?
밑에 소스는데이터 조회후 주문번호 데이터를 더블클릭하였을 때, 나타나는 이벤트로
p_selfield-sel_tab_field가 'IT_MSKA-VBELN' 일때,
call_va03 이 호출되어 수행되는데...이것이 VA02(구매오더변경)T-Code를 호출하게 되어있습니다.
(예로 주문번호 12345를 클릭하였을때, 주문번호를 가지고 VA02(구매오더변경)란 메뉴로 화면이 전환된다.)
품목번호
주문번호
1
12345
2
11111
3
222222
=========================================================================
FORM user_command USING p_ucomm LIKE sy-ucomm
p_selfield TYPE slis_selfield.
DATA : self_vbeln LIKE it_mska-vbeln.
p_selfield-refresh = 'X'.
CLEAR zsds0004-lfart.
CASE p_ucomm.
* 배치상세조회
WHEN 'BATCH'.
PERFORM display_item.
* 최신표시
WHEN 'REFR'.
PERFORM fill_itab.
WHEN '&IC1'.
CASE p_selfield-sel_tab_field.
WHEN 'IT_MSKA-MATNR'. "자재조회
PERFORM call_mm03 USING p_selfield-value.
WHEN 'IT_MSKA-CHARG'. "뱃치조회
READ TABLE it_mska INDEX p_selfield-tabindex.
PERFORM call_msc3n USING p_selfield-value
it_mska-matnr
it_mska-werks
it_mska-lgort.
WHEN 'IT_MSKA-KUNNR' OR 'IT_MSKA-KUNZC'. "고객조회
PERFORM call_vd03 USING p_selfield-value.
WHEN 'IT_MSKA-VBELN'. "주문조회
PERFORM call_va03 USING p_selfield-value.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
FORM call_va03 USING p_value.
CHECK p_value NE space.
* PARAMETER SETTING
SET PARAMETER ID 'AUN' FIELD p_value.
* CALL TRANSACTION
CALL TRANSACTION 'VA02' AND SKIP FIRST SCREEN.
COMMIT WORK AND WAIT.
ENDFORM.
=---------------------------------------------------------------------
그런데, 지금 제가 하려는 것은, 현재 프로그램 zsdr102 에서 데이터 조회시 조회번호가 아닌,
품목번호를 클릭하였을 때, VA02 로 전환되고 또한 VA02에서 또다시 품목번호를 더블클릭시에
VA02의 다른화면으로 전환되는 방법을 원하는데여....
즉, zsdr102에서 품목번호를 더블클릭했을때, va02 화면1 -> va02 화면2 까지 한번에 가도록 하는것입니다.
VA02의 초기화면으로 링크가되기 위해서는 주문번호 데이터(VA02 화면1)가 있어야 하고, VA02 에서 다시 품목번호를 더블클릭시에 다음화면(VA02 화면2)으로 변경하기 위해서는 품목번호가 있어야 하므로...
zsdr102 의 조회화면에서 품목번호를 조회시, PARAMETER로 조회번호와 품목번호를 같이 넘겨야 한다고 생각을 해서 일단은...다음과 같이 작성을 했는데요...
* 재고조회화면에서 품목번호 더블클릭시 링크기능 추가.
WHEN 'IT_MSKA-POSNR'. "품목번호
READ TABLE it_mska INDEX p_selfield-tabindex.
self_vbeln = it_mska-vbeln.
PERFORM call_va03_posnr USING self_vbeln p_selfield-value.
-------------------------------------------------------------------------
FORM call_va03_posnr USING p_value p_value2.
CHECK p_value NE space.
* PARAMETER SETTING
SET PARAMETER ID 'AUN' FIELD p_value.
* CALL TRANSACTION
CALL TRANSACTION 'VA02' AND SKIP FIRST SCREEN.
COMMIT WORK AND WAIT.
ENDFORM. " call_va03
==========================================================================
이런식으로 해서 일단은, VA02 처음화면으로 넘어가긴 하는데, 품목번호를 통한 2번째 화면으로는 어떻게 해야 넘어가는지 모르겠네여!!
고수님들...제가 ABAP 초보라...찾아보긴 했는데,,
무슨 hotspot이래나 먼가가 있다고 하는데,
읽어봐도 잘 이해가 안가네요...ㅠㅠ
이해하기 쉽게 설명좀 부탁드릴께요~~~
댓글 3
-
전컴
2008.02.20 07:00
-
Waiting
2008.02.20 18:20
Hotspot 은 Double Click Event 랑 같은 기능을 나타냅니다. Fieldcatalog 에서 Hotspot 기능을 구현해주면 되구요..
'VA02' 에서 보시면 Order 번호의 Parameter ID가 'AUN'으로 되어있어 그 값을 넘겨주게 되는 것입니다. 품목번호에 대한
Parameter ID가 있다면, set parmeter id 로 품목번호값을 넘겨주시면 되고, 없다면, 전컴님이 말씀하신대로 하시는게 좋을듯합니다.
-
김용태
2008.02.20 18:56
BDC 레코드를 떠서 작업을 해야 할듯 합니다.
컨설분에게 레코드를 떠 달라 하세요...
님께서 원하는 결과를 얻으시려면, 품목을 선택하고 원하는 화면에 도달하는 부분 까지를 레코딩 떠서, BDC로 구현을 해야 할듯 합니다.
BDC 구현방법에 대해서는... 자료를 한번 찾아보심이 좋겠습니다. (_ _)