Screen Painter에서 Dropdown List로 Sub Screen을 호출할 수 있는 방법입니다~
1. 메인 화면 생성
메인 화면인 0100 생성
2. 리스트 박스 생성
다음은 메인 화면 0100 에 리스트 박스를 추가합니다.
Function Code를 지정하는 이유는 리스트 박스의 값 변경시마다,
PBO를 호출해서 Subscreen을 호출하기 위함인데 밑에서 나옵니다!
그리고 TOP 부분에 화면과 동일한 변수를 입력합니다.
DATA: GV_SCREEN TYPE ZETEST01.
리스트 박스의 값은 'VRM_SET_VALUES' 함수를 통해 로직으로 설정할 수 있지만,
저는 생략하고 도메인의 Value Range를 가져오게 했습니다. (Data element에 도메인을 설정하면 자동으로 가져옴)
(도메인에 설정한 Value Range)
그러면 자동으로 도메인에 있는 값들을 가져오게 됩니다.
리스트 박스 맨 밑에 공백을 없애고 싶으면, 스크린 페인터 입력 필드 설정에서 필수(required)로 바꾸면 됩니다.
3. Sub Screen 설정
메인 스크린 0100에 서브화면영역을 생성해줍니다.
그 다음, 원하는 대로 Sub Screen을 생성합니다.
화면유형을 서브화면으로 선택하면, 서브 스크린으로 생성이 됩니다.
4. 로직 작성
다음은 이제 리스트박스 변경 시 마다, 서브 스크린을 호출하는 로직을 짜봅시다.
DATA: GV_DYNNR LIKE SY-DYNNR.
먼저 TOP에 호출할 서브 스크린을 담아 두는 변수를 선언하고,
GV_SCREEN(리스트박스)에 값마다 호출하고 싶은 서브 스크린을 GV_DYNNR에 넣어줍니다.
CALL SUBSCREEN SUB INCLUDING SY-CPROG GV_DYNNR.
그러면 PBO에서 위의 코드로 서브 스크린이 변경됩니다.
그러면 아래와 같이 리스트 박스가 변경될때 마다, 서브 스크린이 변경됩니다.
서브 스크린을 좀 급조한 감이 있지만, 필요에 따라 서브 스크린을 변경하면 되겠죠?
'ABAP' 카테고리의 다른 글
[ABAP] DB 연결 확인(DBCO) - DB Connection check (0) | 2024.11.05 |
---|