1. 선언법
* 기본적인 선언법
1) RANGES 변수명 FOR 테이블-필드.
2) DATA 변수명 TYPE RANGE OF 필드
3) 레인지변수 필드별로 각각 선언하기
4) 스탠다드 레인지변수 타입 이용 ( RSDSSELOPT , RANGES_MATNR 등)
단 이렇게 선언하면, 헤더와 바디의 이름이 같아 헷갈린다. 고로 나는 스탠다드 레인지변수 타입을 이용하여 헤더와 바디 따로 선언하는 것을 선호한다. 다음처럼.
DATA : LS_R_JOBNAME TYPE RSDSSELOPT,
LT_R_JOBNAME TYPE TABLE OF RSDSSELOPT.
* . RSDSSELOPT는 스탠다드 레인지변수 타입으로 아래와 같은 스트럭쳐.
5) 매크로 이용
DEFINE __set_range.
&1-sign = &2. "&1 : 레인지변수명 "&2 ~ &5 : 레인지변수 옵션
&1-option = &3.
&1-low = &4.
&1-high = &5.
COLLECT &1.
CLEAR &1.
END-OF-DEFINITION.
__SET_RANGE : LR_DOCNO 'I' 'EQ' LV_DOCNO ' '.
2. 사용법
1) 스트럭쳐에 담아준 후 APPEND
* 구 구문
* 신 구문
LS_R_RULID = VALUE #( SIGN = 'I' OPTION = 'BT' LOW = SO_RULID-LOW HIGH = SO_RULID-HIGH ).
APPEND LS_R_RULID TO LT_R_RULID. CLEAR SO_RULID.
DATA : LT_RANGE_DATE TYPE TABLE OF RANGE_DATE,
APPEND VALUE #( SIGN = 'I'
OPTION = 'EQ'
LOW = SY-DATLO ) TO LT_RANGE_DATE.
2) 바로 꽂기
DATA : LT_R_DATE TYPE RANGE_DATE_T.
LT_R_DATE = VALUE #(
( SIGN = 'I' OPTION = 'EQ' low = SY-DATLO high = '' )
).
다만 LOOP 안에 있는 경우에는 돌 때마다 한줄씩 쌓여야..! 쌓이게 하는 키워드 BASE 이용하자!
LOOP AT LT_ORG_LIST INTO DATA(LS_ORG_LIST).
LT_R_PNE_ORG = VALUE #( BASE LT_R_PNE_ORG
( SIGN = 'I' OPTION = 'EQ' LOW = LS_ORG_LIST-INTERNAL_ID HIGH = '' )
).
ENDLOOP.
'SAP > ABAP' 카테고리의 다른 글
select - case 문 ( 공백일 때 특정 문자 넣어서 발췌 / 값에 따른 신호등 처리 ) (0) | 2022.07.19 |
---|---|
주요 Function 모음 (0) | 2022.06.03 |
하이라키가 있는 경우, 키 발췌 코드 (0) | 2022.03.09 |
[SAP ABAP] Text Symbol (0) | 2021.07.21 |
[SAP ABAP] 상수 Constant (0) | 2021.07.21 |