본문 바로가기
ABAP

[ABAP] 리스트 박스로 서브스크린 호출하기_List Box, Sub Screen

by 이재잰 2024. 12. 15.

Screen Painter에서 Dropdown ListSub 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