SAPMZ5A1460

100번 메인 스크린에 좌측 저거 버튼 클릭해 subscreen 자리를 설정한다.

이름은 SUB으로 준다.

110번 레이아웃도 설정해준다.

110번 attribute는 꼭 subscreen으로.

sub 자리에 subscreen을 부르는데 현 프로그램의 0110번을 부른다.
그리고 pai에서 다시 call subscreen한다.
PROGRAM sapmz5a1460.
*공통
DATA: gv_subrc TYPE sy-subrc,
ok_code TYPE sy-ucomm.
* 단위
DATA: gv_meins TYPE t006-msehi,
gv_mseht TYPE t006a-mseht.
" Header Line 있는 Internal Table
* gt_t006a[]: internal table.
* 단위 미리 읽어놓기위해 사용
DATA: BEGIN OF gt_t006a OCCURS 0,
msehi TYPE t006a-msehi,
mseht TYPE t006a-mseht,
END OF gt_t006a.
" 위에 begin of로 선언한거랑 똑같음.
DATA: gt_t006a TYPE zs5a00501_t,
gs_t006a LIKE LINE OF gt_t006a.

msehi : id
mseht : text
PERFORM get_meins_text USING gv_meins CHANGING gv_mseht.
FORM get_meins_text USING VALUE(pv_meins) "type
CHANGING cv_mseht. "type
SELECT SINGLE mseht FROM t006a
INTO cv_mseht
WHERE msehi = pv_meins.
ENDFORM.
매번 검색을 한다. select문을 항상 실행하게 된다.
"첫번째 방법 - 헤더테이블
PERFORM get_meins_text01 TABLES gt_t006a
USING gv_meins
CHANGING gv_mseht.
FORM get_meins_text01 TABLES pt_t006a LIKE gt_t006a[] "pt_t006a: 헤더라인 있는 인터널 테이블
USING p_meins
CHANGING p_mseht.
CLEAR pt_t006a. "pt_t006a: struct
READ TABLE pt_t006a WITH KEY msehi = p_meins.
"pt_t006a 헤더라인 있기때문에 into 안써도 자동으로 헤더라인으로 들어가는듯하다
IF sy-subrc = 0.
p_mseht = pt_t006a-mseht.
ENDIF.
ENDFORM.
한번에 모든 db에서 모든 정보를 internal table에 저장한다
최초 실행 시 부하가 좀 크겠지만 이후 편하다.
" 두번째 방법 - table type 이용
PERFORM get_meins_text02 USING gv_meins
CHANGING gv_mseht gt_t006a.
FORM get_meins_text02 USING VALUE(p_meins)
CHANGING p_mseht
pt_t006a TYPE zs5a00501_t .
DATA ls_t006a LIKE LINE OF pt_t006a.
READ TABLE pt_t006a WITH KEY msehi = p_meins
INTO ls_t006a.
IF sy-subrc = 0.
p_mseht = ls_t006a-mseht.
RETURN.
ENDIF.
" read table 실행결과 없으면 검색하여 append
SELECT SINGLE msehi mseht
FROM t006a
INTO CORRESPONDING FIELDS OF ls_t006a
WHERE spras = sy-langu
AND msehi = p_meins.
IF sy-subrc = 0.
p_mseht = ls_t006a-mseht.
APPEND ls_t006a TO pt_t006a.
SORT pt_t006a BY msehi.
ENDIF.
ENDFORM.
평소에 하던 방법으로
1) internal table 검색 -> 있으면 internal table에서 정보 가져옴
2) 인터널에 없으면 -> select해오고 그걸 internal에 append해줌.