728x90
반응형
Value
WA - 기존값 초기화후 넣어줌
WA1 = VALUE #(
IFRESULT = ES_RETURN-IFRESULT
IFMESSAGE = ES_RETURN-IFMESSAGE ).
WA - 기존값 유지한채로 새로운값 넣어줌
WA1 = VALUE #( BASE WA1
IFRESULT = ES_RETURN-IFRESULT
IFMESSAGE = ES_RETURN-IFMESSAGE ).
INT - VALUE # BASE
IT_RESULT[] = VALUE #( BASE IT_RESULT[]
( IFRESULT = LS_RETURN-TYPE
IFMESSAGE = LS_RETURN-MESSAGE ) ).
lt_orders = VALUE #( ( order_number = ls_0100-aufnr ) ).
Corresponding
corresponding + append
TAB1 = VALUE #( BASE TAB1 ( CORRESPONDING #( WA1 ) ) ).
TAB2 = CORRESPONDING #( BASE ( TAB2 ) TAB1 ).
corresponding + field
WA2 = VALUE #( BASE CORRESPONDING #( WA1 )
FILED1 = VALUE ).
For in
LOOP 구문과 동일
이때 For 뒤에오는 work area는 선언된적 없는 구조체여야 한다.
MOVE-CORRESPONDING TAB1[] TO TAB2[].
LOOP AT ITAB INTO DATA(WA).
LS_TAB2-DATE = SY-DATUM.
LS_TAB2-TIME = SY-UZEIT.
MODIFY ITAB FROM WA.
CLEAR WA.
ENDLOOP.
=>
TAB2 = VALUE #( FOR WA IN ITAB
WHERE ( CHECK EQ GC_X ) "만약 조건걸면 이렇게
( VALUE #( BASE CORRESPONDING #( WA )
DATE = SY-DATUM
TIME = SY-UZEIT ) ) ).
Lines
조건에 맞는 라인 존재하는지 체크
LINE_EXISTS( TAB1[ FIELD1 = Value ] ).
라인수 체크
IF lines( TAB1 ) = 0.
Get table index
DATA(lv_tabix) = line_index( lt_tab[ FILED1 = value ] ).
Reduce
인터널테이블에서 특정조건을 만족하는 라인의 갯수 세기
DATA( LV_LINES ) = REDUCE I( INIT X = 0 FOR WA IN ITAB
WHERE ( FIELD1 = WA-FIELD1 ) NEXT x = x + 1 ).
DATA(LV_TEXT) = REDUCE string( INIT x TYPE string FOR wa IN itab
NEXT x = x && wa-text ) ).
COND, SWITCH (CASE)
두 구문의 기능은 동일하다.
lv_data = COND #( WHEN FIELD1 IS INITIAL THEN data1
ELSE data2 ).
data(lv_num) = COND i( WHEN lv_data = 'A' THEN 1
WHEN lv_data = 'B' THEN 2 ).
DATA(lv_num) = SWITCH #( lv_data WHEN 'A' THEN 1
WHEN 'B' THEN 2 ).
Filter
조건에 맞는 데이터만 뽑아서 MOVE 시킬수 있는 구문.
인터널테이블은 Sorted Table 이어야 사용가능하다.
DATA: lt_item TYPE TABLE OF table1 WITH NON-UNIQUE SORTED KEY key1 COMPONENTS key1.
lt_itab1 = FILTER #( lt_item USING KEY key1
WHERE key1 = ls_head-key1 ).
728x90
반응형
'ABAP' 카테고리의 다른 글
[ABAP] 자주 까먹는 구문 (0) | 2024.11.27 |
---|---|
[Field symbol] 가로데이터->세로로 (0) | 2023.03.10 |
[New Syntax] COLLECT (0) | 2023.03.02 |
문자열 자릿수만큼 split (0) | 2023.03.02 |
영문 포함하는 변수인지 확인하는법 (0) | 2023.03.02 |
댓글