본문 바로가기
ABAP

[ABAP]사용했던 탭스트립 값 기억하기 / Remember the tab strip values ​​you used

by wonieee 2024. 12. 2.

탭스트립 사용시 tab1, tab2 두개로 개발을 해놨는데

tab2로 실행 후 alv화면에서 다시 1000번스크린으로 돌아올때 자꾸 tab1이 셋팅되어있어서 해결하기 위해서 쓰는 글 

 

탭스트립 여러개인 경우, 선택하고 다시 1000번 스크린으로 돌아올때 실행했던 탭스트립 설정하는 방법 

=> 아밥 메모리 가지고 해결해야함!

 

*TOP 

*TAB 설정 
SELECTION-SCREEN : BEGIN OF TABBED BLOCK TAB FOR 10 LINES,
 TAB(20) tab1 user-command tab1,
 TAB(20) tab2 user-command tab2,
 END OF BLOCK tab.
 
 DATA: gs_sel_tab TYPE seltabinfo.

 

서브스크린은 알고있는 방법으로 동일하게 만들어주고! 

 

Initialization 에서 로직 작성 

최초실행일 경우에는 IMPORT 해올 값이 없기 때문에 ELSE 로직타니까 디폴트 탭과 화면 설정해주면됨

IMPORT gs_sel_mytab-dynnr FROM MEMORY ID 'TabStripeScreen'.
IMPORT gs_sel_my-tab-activetab FROM MEMORY ID 'TabStripeActive'.

IF SY-SUBRC = 0. 
 CLEAR : tab-dynnr, tab-activetab.
 
 MOVE : sy-repid to tap-prog,
        gs_sel_mytab-dynnr to tab-dynnrm
        gs_sel_mytab-activetab to tab-activetab. 
ELSE.
 tab-dynnr = 101.
 tab-activetab = 'TAB1'.
 
ENDIF.

 

그리고 중요한 부분 ! 

ALV 화면마다 EXIT 로직탈때 사용했던 화면을 넣어주어야함 

PAI 

MODULE exit_100 at exit-command. 

gs_sel_mytab-dynnr = '101'.
gs_Sel_mytab-activetab = TAB1'.

EXPORT gs_sel_mytab-dynnr TO MEMORY ID 'TabStripeScreen'.
EXPORT gs_sel_mytab-activetab TO MEMORY ID 'TabStripeActive'.

 

댓글