*&---------------------------------------------------------------------*
*& Report Z_SCREENS_1 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT z_screens_1 .
TABLES: zemployees.
DATA: wa_employee LIKE zemployees-employee.
PARAMETERS: my_ee LIKE zemployees-employee
DEFAULT '12345678' OBLIGATORY,
my_box1 AS CHECKBOX,
wa_green RADIOBUTTON GROUP grp1,
wa_blue RADIOBUTTON GROUP grp1,
wa_red RADIOBUTTON GROUP grp1.
SELECT-OPTIONS my_dob FOR zemployees-dob.
*INITIALIZATION.
SELECT * FROM zemployees.
wa_employee = zemployees-employee.
ENDSELECT.
AT SELECTION-SCREEN ON my_ee.
* Check to make sure the employee number is not greater than the
* last employee number in our table.
IF my_ee > wa_employee.
* DISPLAY A MESSAGE.
ENDIF.
*
SELECT-OPTIONS를 사용하면 자동으로 내부 테이블이 생성되고, 이 테이블은 다음 4개의 필드로 구성된다!
🧾 SELECT-OPTIONS 테이블 구조 (기본 4개 필드)
필드명 | 설명예시 | 값 |
SIGN | 포함 여부를 결정하는 필드 | I (Include) / E (Exclude) |
OPTION | 조건 연산자를 지정하는 필드 | EQ, NE, BT, CP, NP 등 |
LOW | 조건의 기준 값, 또는 범위의 시작 값 | '20230101', '10000001' |
HIGH | 범위의 끝 값 (OPTION = 'BT'일 때만 사용) | '20231231' |
🎯 각 필드의 의미 자세히 보기
✅ SIGN
- 조건을 포함할지(Include) 또는 **제외할지(Exclude)**를 의미
- 값:
- I → 포함 (Include)
- E → 제외 (Exclude)
SIGN | 의미 | 설명 |
I | Include | 조건을 포함함 |
E | Exclude | 조건을 제외함 |
✅ OPTION
- 조건 연산자(Logical Operator)를 의미
- 값:
옵션 | 의미 | 설명 |
EQ | Equal | 같음 (=) |
NE | Not Equal | 같지 않음 (≠) |
GT | Greater Than | 초과 (>) |
LT | Less Than | 미만 (<) |
GE | ≥ | 크거나 같음 |
LE | ≤ | 작거나 같음 |
BT | Between | ~사이 (범위) |
NB | Not Between | ~사이 제외 |
CP | Contains Pattern | 와일드카드 사용 (예: A*, 1%) |
NP | Not like pattern | 패턴 제외 |
✅ LOW / HIGH
- LOW: 조건의 기준 값 또는 범위의 시작값
- HIGH: OPTION = 'BT'일 때 범위 끝값
예시 | 의미 |
LOW = '20230101', HIGH = '20231231', OPTION = 'BT' | 2023년 전체 범위 |
LOW = 'MILLS', OPTION = 'EQ' | 성이 MILLS인 사람 |
LOW = 'J*', OPTION = 'CP' | J로 시작하는 모든 값 |
✅ PARAMETERS vs SELECT-OPTIONS 차이점
항목 | 파라미터 | select-options |
입력 가능 값 | 단일 값 | 단일 값, 값의 범위, 여러 값, 여러 범위 |
내부 구조 | 단일 변수 | 내부 테이블 (SIGN, OPTION, LOW, HIGH 필드로 구성됨) |
복잡한 조건 | 불가능 | 가능 (예: 제외 조건, 여러 범위 입력) |
UI 구성 | 한 줄 입력창 | From~To 입력창 + 다중 선택 팝업 기능 |
🧠 SELECT-OPTIONS 내부 구조 (자동 생성되는 테이블 구조)
SELECT-OPTIONS: s_dob FOR zemployees-dob.
필드명 | 의미예시 | 값 |
SIGN | 포함(I) / 제외(E) | I or E |
OPTION | 조건 연산자 (EQ, NE, BT, CP 등) | EQ, BT, CP |
LOW | 기준 값 or 범위 시작값 | 20240101 |
HIGH | 범위의 끝값 (OPTION = BT인 경우) | 20241231 |
이 테이블은 루프 돌면서 사용 가능하다!
LOOP AT s_dob INTO DATA(wa_dob).
WRITE: / wa_dob-sign, wa_dob-option, wa_dob-low, wa_dob-high.
ENDLOOP.
🖱 UI 상에서 제공하는 기능
- FROM ~ TO 입력란 기본 제공
- 오른쪽의 “다중 선택 버튼” 클릭 → 다이얼로그 팝업에서 다음 입력 가능:
- 여러 개의 단일 값
- 여러 개의 범위
- 포함(INCLUDE), 제외(EXCLUDE)
- 와일드카드 (*, %)도 가능 (자동으로 CP 조건 사용됨)
🎯 언제 SELECT-OPTIONS를 써야 할까?
- 사용자가 여러 값을 동시에 검색하고 싶을 때
- 범위 검색이 필요한 필드일 때 (예: 날짜, 번호, 코드 등)
- 복잡한 필터 조건 (제외, 와일드카드 등)이 필요할 때
🔍 예시 코드 요약
SELECT-OPTIONS: s_dob FOR zemployees-dob.
START-OF-SELECTION.
LOOP AT s_dob INTO DATA(wa_dob).
WRITE: / wa_dob-sign, wa_dob-option, wa_dob-low, wa_dob-high.
ENDLOOP.
'SAP' 카테고리의 다른 글
SAP ABAP Programming for Beginners - 58 No-EXTENSION (0) | 2025.04.13 |
---|---|
SAP ABAP Programming for Beginners - 57 Select-options (0) | 2025.04.13 |
SAP ABAP Programming for Beginners - 55 CheckBox체크박스 (0) | 2025.04.13 |
SAP ABAP Programming for Beginners - 54 Parameters (0) | 2025.04.13 |
SAP ABAP Programming for Beginners - 53 At Selection screen (0) | 2025.04.13 |