이런 프로그램을 만들었는데... 다른 프로그램에서 이 프로그램을 호출해서 출력하고 싶어졌다.
어떻게 해야 하나? 하면 Submit 를 쓰면 된다.
자.. 왜 이런 의문이 들었는지.. 확인!
이런 버튼에서 클릭했을시에는 이런 팝업창이 뜬다.
그리고 OK 버튼을 눌렀을 시에는 저 맨 위에 저 프로그램을 호출할 예정이었다..
물론 여기서 select options의 값이라던지 Parameters 값들을 입력해야만 한다.
이 값들은 전 프로그램에서 호출할 프로그램에서 넘겨줘야 되겠지??
PROCESS BEFORE OUTPUT.
MODULE STATUS_9020.
*
PROCESS AFTER INPUT.
MODULE exit AT EXIT-COMMAND.
MODULE back.
MODULE print. <- 이 부분 소스 공개
-------------------
CHECK save_ok_code = 'ENTE'.
TYPES: BEGIN OF t_hscode,
matnr TYPE matnr,
zofhs006 TYPE zoehs006,
END OF t_hscode.
DATA : lr_matnr TYPE RANGE OF matnr, "다른 프로그램에 값을 넘기기 위한 선언들
lr_werks TYPE RANGE OF werks_d,
ls_matnr LIKE LINE OF lr_matnr,
ls_werks LIKE LINE OF lr_werks,
lv_bdatj TYPE bdatj,
lv_poper TYPE poper,
lv_zofdetnr type ZOEDETNR,
lt_hscode TYPE STANDARD TABLE OF t_hscode,
ls_hscode TYPE t_hscode.
DEFINE %assign_ranges_ieq. "레인지선언 하기 위한 정의부
clear ls_&1.
ls_&1-sign = 'I'.
ls_&1-option = 'EQ'.
ls_&1-low = &2.
append ls_&1 to lr_&1. clear ls_&1.
END-OF-DEFINITION.
LOOP AT gt_dsp INTO gs_dsp WHERE zoforign = 'I'.
%assign_ranges_ieq: matnr gs_dsp-matnr, "lr_matnr 생성
werks gs_dsp-werks. "lr werks 생성
lv_bdatj = gs_dsp-zofdbdtj.
lv_poper = gs_dsp-zofdpopr.
lv_ZOFDETNR = gs_dsp-ZOFDETNR.
ls_hscode-matnr = gs_dsp-matnr.
ls_hscode-zofhs006 = gs_dsp-zofhs006.
APPEND ls_hscode TO lt_hscode. CLEAR ls_hscode.
ENDLOOP.
EXPORT lt_hscode p_expor p_kunnr lv_ZOFDETNR TO MEMORY ID 'HSCODE'.
-이 부분은 넘겨줄 프로그램에서 사용할 테이블과 파라미터 값들이다.
-메모리 아이디를 써서 타 프로그램으로 넘겨준다. 이건 받는 부분을 아래 써주겠다.
SUBMIT zo1erdc010 WITH p_bukrs EQ zosr0061-bukrs "이 부분이 프로그램 호출부이고
WITH p_agrnr EQ zosr0061-zof0agnr "생성했던 값들을 입력해서 들어가게 한다.
WITH p_kunnr EQ zosr0061-kunnr
WITH s_matnr IN lr_matnr
WITH s_werks IN lr_werks
WITH p_bdatj EQ lv_bdatj
WITH p_poper EQ lv_poper
WITH p_colif EQ zosr0061-zof0conr
AND RETURN.
Export 같은 경우는 받아주는 부분을 보자.
우선 받는 부분의 선언부에 선언을 이렇게 했다.
TYPES: BEGIN OF t_hscode,
matnr TYPE matnr,
zofhs006 TYPE zoehs006,
END OF t_hscode.
DATA : lt_hscode TYPE STANDARD TABLE OF t_hscode,
ls_hscode TYPE t_hscode,
l_expor TYPE xfeld,
l_kunnr TYPE xfeld,
l_zofdetnr TYPE zoedetnr.
아래처럼 값들을 받아왔다. 그리고 클리어 하는 것을 잊지 말기.
*--------------------------------------------------------------------*
IMPORT lt_hscode = lt_hscode "좌측이 넘기는 부분 우측이 받는 부분이다.
p_expor = l_expor
p_kunnr = l_kunnr
lv_zofdetnr = l_zofdetnr
FROM MEMORY ID 'HSCODE'.
FREE MEMORY ID 'HSCODE'.
*--------------------------------------------------------------------*
정리 끝이다. 알겠나? 모르면 말고...
'ERP-SAP > ABAP' 카테고리의 다른 글
<ABAP> Mainternance View에 Event 넣기(유지보수뷰) (0) | 2011.09.15 |
---|---|
<ABAP> Mainternance View Data 검색 가능하도록 만들기(유지보수뷰) (0) | 2011.09.15 |
<ABAP> AT NEW, SUM, AT END, AT FIRST, AT LAST (0) | 2011.06.15 |
<ABAP> 월 팝업창 만드는 방법(F4 Help 년월 띄우는 법) (0) | 2011.06.09 |
<ABAP> CLASS ALV 에서의 Top-of-page 만드는 소스 (0) | 2011.03.07 |