Programming/ABAP (32) 썸네일형 리스트형 ABAP Report Program SAP-ABAP에는 Report Program 과 Dialog Program, 두 가지 유형이 있다. 그 중 Report Program은 대량의 데이터를 표시해야 할 때 사용한다. Report Program 용도 여러 테이블의 데이터를 선택 및 가공 한 후 출력해야 할 때. 보고서에 특별한 형식이 필요할 때. (custom) 보고서를 SAP에서 엑셀 시트로 다운로드하여 배포해야 할 때 Report Program 주요 특징 Report Programs 은 항상 Executable Programs 이다. 마찬가지로 Program Type 도 항상 1이다. 이벤트 중심 프로그래밍이다. 프로그램 코드의 첫 줄은 항상 이다. line-size 를 사용해서 line 의 size 를 설정할 수 있다. line-cou.. DELETE vs CLEAR vs REFRESH vs FREE Internal Table 에서 데이터를 삭제하는 방법들인 Delete, Clear, Refresh, Free 는 각각 차이가 존재한다. 위 사진에서, FREE 는 할당된 메모리를 모두 삭제하고, DELETE 는 그대로 유지하는 것을 확인 할 수 있다. CLEAR 와 REFRESH 는 할당된 메모리를 해제하고 internal table 을 초기 크기로 설정한다는 공통점이 있다. 하지만, REFRESH 는 header line 을 삭제할 수 없고, CLEAR는 header line과 work area 모두 삭제할 수 있다는 차이점이 존재한다. 요약 DELETE 메모리 상관 없이 입력된 데이터만 삭제 REFRESH itab[]에 해당하는 body만 삭제(structure 삭제 불가) CLEAR itab[] .. Internal Table 복사 및 삭제 Copy Internal table의 내용을 다른 table로 복사하려면 APPEND LINES 또는 INSERT LINES 문을 사용하면 된다. 가장 간단한 방법은 MOVE 또는 = 할당을 사용하는 것이다. MOVE To . OR = . ITAB1의 내용이 ITAB2로 복사된다. itab1[] = itab2[]. Internal table with header line 의 경우, work area와 구분하기 위해 []를 사용해야 한다. Delete 1. LOOP Syntax DELETE . 위 코드는 loop 내에서만 작동한다. 일반적으로 현재 line 을 삭제하지만, WHERE 절을 추가해 조건부로 삭제 할 수도 있다. 2. INDEX Syntax DELETE INDEX . index가 인 줄이 삭제.. Internal Table 데이터 읽기 1. Loop -Endloop Syntax LOOP AT [INTO ] ................................... ENDLOOP. LOOP AT 구문은 ITABLE을 한 줄씩 마지막 행까지 반복해서 읽어온다. 원하는 특정 행의 열 값에 접근 할 수 있으며. 하나의 데이터만 읽더라도 SY-SUBRC의 값은 0이 출력된다. 2. READ 문 Syntax READ TABLE [INTO ] INDEX . 현재 line 또는 index 에 지정된 line을 읽어온다. SY-TABIX 를 사용해 읽어온 줄의 인덱스를 확인 할 수 있다. 기술한 index 를 정상적으로 읽어오면 SY-SUBRC값은 0이 출력된다. 작성한 index가 0보다 작으면 런타임 오류가 발생하고, 작성한 index가 테이.. Internal Table 데이터 채우기 1. 한 줄씩 데이터 추가하기 - APPEND 다른 work area에서 internal table에 한 줄을 추가하거나, internal table에 첫 한 줄을 추가할 수 있다. Syntax APPEND [ TO / INITIAL LINE TO] . work area 또는 intial line이 internal table 에 추가된다. 시스템 변수 SY-TABIX에 더해진 줄의 인덱스가 추가된다. Example Data: Begin of itab occurs 10, col1 type C, col2 type I, end of itab. Append initial line to itab. * output : ' ' '0' initial line은 해당 유형에 맞는 초기 값을 테이블에 추가한다. 여기서 c.. Internal Table 생성하기 1. TYPE 문 Types : begin of line, column1 type I, column2 type I, end of line. Data itab type line occurs 10. TYPES 문을 사용해 정의한 대로 structure 를 생성한 후, Data 문으로 internal table 을 선언한다. 2. 기존 table 참조 기존 테이블을 참조하여 internal table을 생성할 수 있다. 기존 테이블은 standard SAP table, 사용자가 정의한 table 또는 다른 internal table 도 가능하다. Syntax Data [with header line]. Example DATA gt_sflight TYPE SFLIGHT. 3. 기존 structure 참조 테이블.. Internal Table, Work area Internal Table 프로그램 내에서 데이터베이스 테이블의 데이터를 저장하고 출력 형식을 지정하는 데 사용된다. 내부 테이블의 각 행은 동일한 필드 구조를 갖는다(동일한 structure 구조) Work Area 데이터의 단일 행 Internal Table 과 동일한 형식이다. Internal table의 데이터를 한 번에 한 줄씩 처리하는 데 사용된다. Internal Table 유형 Internal tables with HEADER line Internal tables without HEADER line. Internal Tables with Header Line 시스템이 자동으로 work area 를 생성한다. work area의 data type 은 internal table 과 동일하다. .. Call by Value /Call by Reference /Call by Value and Reference Call by Value 넘겨주는 변수(Actual Parameter)와 받는 변수(Formal Parameter)가 물리적으로 다른 메모리 영역을 가지고 있다. Call by Reference 물리적으로 같은 메모리 영역을 공유하여 넘겨주며 값은 주소이다. Call by Value and Result 변수의 값을 넘겨주고 받는 구문에서 작업을 성공적으로 수행하였을 경우 변경된 값을 되돌려 준다. 물리적으로는 다른 영역을 사용한다. Call by Value FORM subr USING .. VALUE(pi) [TYPE | LIKE ]. USING 키워드 다음 파라미터를 작성하고, VALUE 구문을 사용한다. VALUE 구문에서 Formal Parameter 는 자신의 메모리를 가진다. Subroutine.. 이전 1 2 3 4 다음 목록 더보기