문바이님 블로그에서 가져온 자료입니다.
https://blog.daum.net/rightvoice/337?category=481143
기본명령어 정리표
기본명령어 정리표 기본구조 구분 설명 예제코드 clear dobj 변수 메모리 초기화 Design Time 이 아닌 RunTime에 변수를 초기화하고자 할 때 사용한다. 메모리를 반환한다. CLEAR scarr. ==> Header 를 지운
blog.daum.net
기본명령어 정리표 | |||
기본구조 | 구분 | 설명 | 예제코드 |
clear dobj | 변수 메모리 초기화 |
Design Time 이 아닌 RunTime에 변수를 초기화하고자 할 때 사용한다. 메모리를 반환한다. | CLEAR scarr. ==> Header 를 지운다. CLEAR scarr[]. ==> Body를 지운다 CLEAR : scarr, scarr[] => 이렇게 많이사용함 |
refresh dobj. free dobj. |
변수 메모리 초기화 |
refresh [데이타를 날린다.] free [refresh 로 날린데이타의 메모리 환원] 사용을 잘 하지 않음 |
refresh scarr. ==> non header line free scarr. ==> non header line |
leave to screen 0. | 호출 | 자기자신을 호출한 WINDOW로 복귀한다. | LEAVE TO SCREEN 0. |
leave program. | 종료 | 자기자신을 메모리에서 제거한다. | LEAVE PROGRAM. |
perform 함수명 USING 파라메터 | 호출 | 함수를 호출하여 실행한다. SubRoutine에서 다시한번 정리할 것이다. |
PERFORM read_date USING gv_idx. |
call screen 화면명 start at x,y | 호출 | 화면을 호출하여 실행한다. | CALL SCREEN 300 STARTING AT 10 10. |
case 대상. when 조건. endcase. |
조건문 | VB[select case] , PB[Choose case] | CASE ok_code. WHEN 'BACK'. leave to screen 0. WHEN 'EXIT' OR 'CANC'. leave program. WHEN 'UPDATE'. perform read_date USING gv_idx. WHEN OTHERS. ENDCASE. |
if 조건1. 실행1. elseif 조건2. 실행2. else. 실행3. endif |
조건문 | IF조건문 | IF GV_test01 eq 1. GT_test01-a = 'a'. ELSEIF GV_test01 > 1. GT_test01-a = 'B'. ELSE. GT_test01-a = 'C'. ENDIF. |
loop at itab. Exit. Continue. end loop. |
반복문 | VB[ For A in each ] Internal Table의 내용을 확인한다. |
LOOP AT itab. [Header Line이 있을 경우] WRITE : itab-recpno. ENDLOOP. LOOP AT itab INTO wa. [Header Line이 없을 경우] WRITE : wa-recpno. ENDLOOP. |
loop at control level processing | 반복문 내 제어문 |
VB[ For A in each ] (Loop의 구동방법에 대해서 다시한번 설명할것이다.) |
LOOP AT itab. [Header Line이 있을 경우] AT NEW itab-pspid. //itab-pspid 가 한번씩 바뀔때마다 실행된다. ENDAT. ENDLOOP. 동일한방식으로 //at first , at last 이벤트 처리가 가능 |
loop at itab. end loop. |
반복문 [심볼이용] |
VB[ For A in each ] Internal Table의 내용을 확인한다. |
FIELD-SYMBOLS: <ls_fcat> TYPE LT_fieldcat. LOOP AT LT_fieldcat ASSIGNING <ls_fcat>. <ls_fcat>-coltext = '고객명'. ENDLOOP. |
loop at screen. end loop. |
반복문 | VB[ For A in each ] Screen에 있는 모든 개체에 접근한는 명령임. 변경된 스크린 내용을 적용한다 SCREEN은 [아래쪽 SCREEN을 참고한다.] |
LOOP AT SCREEN. IF SCREEN-NAME = 'GS_ZSUTT_24-BUKRS'. SCREEN-INPUT = 0. MODIFY SCREEN. END IF. ENDLOOP. |
DO [n TIMES]. Statements ENDDO. |
반복문 | VB[ FOR ~~ NEXT ] SY-INDEX의 값이 자동으로 변경된다. |
DO 4 TIMES. WRITE : / sy-index. EXIT. ENDDO. |
move =MID =SUBSTR |
명령문 | MOVE : source TO target. MOVE-CORRESPONDING:stru_sor TO stru_tag |
MOVE '5.3' TO number. MOVE-CORRESPONDING address TO name. MOVE f1+3(3) TO f2+o(l). MOVE etab[] TO ftab. |
DESCRIBE FIELD | 명령문 | Field txt의 [TYPE]을 확인하여 [t]에 넣어준다. Field txt의 [LENGTH]을 확인 [t]에 넣어준다. Field txt의 [소수점]을 확인하여 [t]에 넣어준다. |
DESCRIBE FIELD txt TYPE t. DESCRIBE FIELD txt LENGTH t IN CHARACTER MODE. DESCRIBE FIELD num DECIMALS t. |
DESCRIBE TABLE | 명령문 | Internal Table의 정보를 알려준다. lin : rowcount , ini : occurs에 의한 초기값 knd : 종류[sTandard,Sorted,Hashed] |
DESCRIBE TABLE itab LINES lin OCCURS ini KIND knd. WRITE : / lin, ini , knd. Lv_cnt = lines( itab ) => RowCount [ 많이 사용 ] |
write | 표시문 | 변수의 상태 및 결과치를 현재진행중인 window에 표시한다. Type-1 에서 Write/Skip등의 명령을 설명할 것이다. |
WRITE text. WRITE /5(10) text. [줄내림,공백5,10개만을 출력] WRITE AT col(len) text. [줄내림,공백col,len개만을 출력] |
SKIP | 표시문 | SKIP. [= SKIP 1.] 한쭉을 공백으로 내려준다. SKIP TO LINE 1. 화면1번라인으로 위치시켜서 출력한다. 기존내용은 겹쳐쓰기가 된다. Type-1 에서 Write/Skip등의 명령을 설명할 것이다. |
SKIP line_number. SKIP TO LINE line_number. |
write문으로 표를 그리는 예시.
write문으로 표를 그리는 예시.