쌓고 쌓다
[ABAP] GUI TITLE, GUI STATUS 본문
User Interface를 재정의하기 위해서 GUI TITLE과 GUI STATUS를 사용한다.
GUI STATUS에서 설정 가능한 것
- Menu bar
- Standard toolbar
- Application Toolbar
- Key setting : F1과 F3와 같은 키 누름시 이벤트
GUI TITLE에서 설정 가능한 것
- 예시 Flight Connection Data Display와 같은 제목
GUI TITLE
스크린의 PBO에서 "MOUDLE STAUS_스크린번호"를 주석 해제한다.
더블 클릭하여 생성.
SET TITLEBAR에 타이틀 코드를 작성한다.
그리고 타이틀 코드 더블 클릭.
Title 부분에 원하는 타이틀을 작성하면 된다.
타이틀의 일부를 동적으로 바꿀 수 있는 방법으로
변수를 넣어줄 수 있는데
앰퍼센트(&) 기호를 사용하여 1번부터 9번까지 총 9개를 지정할 수 있다.
&1 &2에 값을 할당하고 싶다면 위과 같이 SET TITLEBAR에 WITH 키워드를 추가한다.
GUI STATUS
PF-STATUS의 주석을 풀고 생성
더블 클릭하여 GUI STATUS를 생성.
Status Type에 Dialog Box인지 Normal Screen인지에 따라 클릭.
GUI Status 폴더에 생성한 Status가 존재하게 된다.
여기서 Menu bar, Application Toolbar, Function Key를 등록 설정할 수 있다.
Standard Toolbar - 뒤로가기 기능
GUI Status에 Function Keys 부분을 확장하여 보면
Standard Toolbar라고 기본적인 기능을 넣어줄 수 있다.
해당 입력 필드를 더블 클릭해서 Function Code를 BACK이라고 지정했다.
이 Function Code를 해당 스크린 PAI에 USER COMMAND 모듈에 구현해주면 된다.
Application Toolbar - 현재 시간 보는 모달 창
모달창인 150번 스크린에 현재 시간을 출력할 것이다.
이것을 100번 스크린에서 Application Toolbar를 이용해 실행하도록 해보자.
150번 스크린 Dynpro Type을 Modal dialog box로 설정.
Application Toolbar에 기능을 추가하기 위해서는
Function Key를 할당해줘야 한다.
Function Key F5에 TIME이라는 Function Code를 할당한다.
Application Toolbar에 F4키를 눌러 원하는 Function Code를 할당해주자.
Times 1에 TIME Function Code를 적용했다.
OK_CODE에서 'TIME' Function Code가 들어왔을때
Dialog Box창을 띄워주면 된다.
스크린 150번의 PBO에서 Status 주석 풀고 생성해주자.
Dialog Box(모달창)이므로 Status Type에 Dialog Box 체크한다.
Enter키에 대한 Function Code를 OKAY를 등록하고
150번 스크린 PAI의 USER_COMMAND에 OK_CODE에
Function Code 'OKAY'가 들어왔을 경우를 추가한다.
이때 꼭 150번 스크린의 Element List에서 OK_CODE를 추가해주도록하자.
OK_CODE를 추가해주지 않으면 동작하지 않는다.
+ PBO에서 CLEAR_OK_CODE
Function Code가 다음 화면에서 예기치 않은 처리 단계를 거치지 않도록 하려면
PBO에서 CLEAR OK_CODE를 해주는 것이 좋다.
+ 입력 필드로 뒤로가기 기능
Screen Element인 Input/Output Field를 IO_COMMAND 이름으로 생성
Includes에 TOP 파일에 위에서 추가한 Element의 이름을 추가해줘야한다.
TOP 파일에는 전역적으로 사용하는 Element나 변수들을 작성해줘야한다.
위와 같이 name이 io_command를 생성해줬으므로 io_ccommand 이름으로 선언.
현재 100번 스크린에서 input field를 추가했다.
100번 스크린을 더블클릭하여 100번 스크린의 PAI에
USER_COMMAND_0100.를 주석을 풀어주고 더블 클릭한다.
위와 같이 IO_COMMAND의 값이 'X'라면
스크린 화면을 이동하는 LEAVE TO SCREEN을 이용해 이동한다.
0번 스크린은 이전 화면이다.
현재는 100번 프로그램에서 실행을 시작했으므로 프로그램이 종료될 것이다.
WHEN 'X'에서 대문자 X가아닌 소문자 x로하면 정상적으로 실행되지 않는다.
왜냐하면 화면에 소문자 x를 입력했더라도 SAP는 대문자를 사용하기에
입력값이 자동적으로 대문자로 바껴 처리가 되기에
WHEN절에 걸리지 않게되어 동작하지 않는다.
'SAP > ABAP' 카테고리의 다른 글
[ABAP] Input Check (0) | 2025.01.13 |
---|---|
[ABAP] Check Box, Radio Button (0) | 2025.01.13 |
[ABAP] Screen 이동 (SET SCREEN, CALL SCREEN) (0) | 2025.01.12 |
[ABAP] Screen Element Attribute 변경, Screen System Table (0) | 2025.01.11 |
[ABAP] Module Pool, Screen Program (0) | 2025.01.09 |