쌓고 쌓다
SELECTION SCREEN에서 ToolBar 버튼 추가 및 삭제 본문

레포트 프로그램을 실행하고 나오는 SELECTION SCREEN이다.
여기에 APPLICATION TOOLBAR 버튼을 추가하고 삭제하는 법을 알아보자.
TOP로직

스트럭처 SSCRFIELDS를 TOP에 선언한다.
Function Code를 설정할 수 있게 해주는 Function Key는 최대 5개 가능하다.
INITIALIZATION 로직

INITIALIZATION 이벤트 블럭에 Selection Screen 화면의 버튼을 추가하는 코드를 작성한다.

버튼을 꾸밀 수 있는 스트럭처 SMP_DYNTXT를 사용한다.
버튼의 값을 설정해주고 위에서 선언했던 SSCRNFIELDS에 넣어주면 된다.
ICON_ID : 아이콘 ( DB Table에 ICON 테이블에서 아이콘을 찾아 써주자)
ICON_TEXT : 아이콘 텍스트
QUICKINFO : 퀵 인포. 마우스를 올렸을때 표시되는 텍스트
SSCRNFIELDS-FUNCTXT_01 = LV_DYNTXT : 설정한 버튼 값들을 할당해주자.
AT SELECTION-SCREEN 로직

추가한 버튼을 누르면 AT SELECTION-SCREEN 블럭을 타게된다.
엔터 또는 Function 버튼을 눌렀을때도 AT SELECTION-SCREEN 블럭을 타더라.
EXCUTE(F8)가 아니기때문에 이 버튼을 눌렀을때 START-OF-SELECTION을 안탄다.
그래서 AT SELECTION-SCREEN에서 처리가 이뤄지는것이다.

CASE OK_CODE.에는 내가 누른 버튼 ‘FC01’ 펑션 코드가 안들어간다.
첫번째 버튼이 아닌 두번째 버튼인경우
TOP에 Function Key 2 가 작성되어 있으며 UCOMM에는 ‘FC02’ 값이 들어간다.
이때 원하는 동작을 서브루틴을 통해 호출하면 된다.
1000번 스크린 기본 버튼 숨김 삭제 (추가된 FC01 버튼도 삭제 가능)

1000번 스크린의 기본 실행 버튼인 Excute 버튼을 없애길 원한다.
(FC01, FC02 등등 추가된 버튼도 삭제가 가능하다)

버튼 숨김은 스크린 프로그램에서 STATUS에 EXCLUDING을 해주는 것 처럼
'RS_SET_SELSCREEN_STATUS' 펑션을 이용해
제외할 펑션 코드들을 넘겨줄 수 있다.
제외할 버튼의 펑션 코드들을 담는 타입으로 RSEXFCODE를 주었다.
사실 SY-UCOMM 타입과 다른게 없다.
SY-UCOMM 타입도. LS_EXCLUDE-FCODE 타입도 CHAR 타입이다.
우리는 STATUS에 제외할 펑션 코드를 CHAR 타입으로 넘겨주면 되는것이다.
P_STATUS에 적용할 Status를 넘겨주어야한다.
현재 화면의 STATUS는 시스템 변수인 SY-PFKEY로 받아올 수 있다.

이제 실행 Excute 버튼이 안보인다.
Excute 실행 버튼인 ‘ONLI’ 외에도 버튼을 숨기거나 비활성화 할 수 있다.
SPOS : SAVE 버튼
E : Back 버튼
ENDE : Exit 버튼
ECAN : Cancel 버튼
PRIN : 프린트 버튼
'SAP > ABAP' 카테고리의 다른 글
| [ABAP] SmartForms Loop 사용법과 집계 구하는법 (4) | 2025.09.03 |
|---|---|
| [ABAP] ALV Cell Edit과 BAPI_PO_CHANGE (13) | 2025.08.28 |
| SMW0 엑셀 템플릿을 이용한 Excel(OLE), PDF 다운로드 (6) | 2025.08.13 |
| CALL TRANSACTION 'XK03' PARAMETER ID (2) | 2025.08.10 |
| F4IF_INT_TABLE_VALUE_REQUEST VALUE_ORG = 'C' (5) | 2025.08.09 |
