본문 바로가기

Programming

(47)
ABAP Report Program - Event block ABAP report programs 은 이벤트 중심 프로그램이며 다음과 같은 Event block 을 가진다. Load-of-program Type 1, M, F 또는 S의 프로그램을 로드한 후 internal session에서 관련 이벤트를 실행시킨다. 각 프로그램 및 internal session에 대해 한 번씩만 실행한다. ABAP Objects 의 생성자(Constructor) 와 비슷한 기능을 한다. Initialization selection screen이 표시되기 전에 실행된다. 모든 값을 초기화한다. selection screen에서 기본값으로 지정된 값 이외의 다른 값을 할당할 수 있다. 실행 될 때 selection screen 을 원하는 값으로 채울 수 있다. At Selection..
ABAP Report Program - Selection Screen Selection Screen 프로그램을 실행할 입력 값을 지정하는 화면. selection screen 은 보통 아래 요소들로 구성된다. Parameters Select-Options Syntax Selection-screen begin of screen selection-screen begin of block with frame title ......... ......... selection-screen end of block selection-screen end of screen Parameters 동적으로 변하는 값(paramter)을 사용할 수 있게 돕는다. 프로그램이 한 번 실행 될 때 하나의 값만 저장된다. Syntax - data type Parameters p_id(30) type c. ..
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가 인 줄이 삭제..
[programmers] 가격이 제일 비싼 식품의 정보 출력하기 문제 FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요. 풀이 - 최대값을 구하기 위해 MAX() 사용 - 집계함수는 WHERE 조건에 바로 사용할 수 없으므로 서브쿼리 형태로 사용 ** HAVING 에서는 집계 함수 사용 가능 SELECT * FROM FOOD_PRODUCT WHERE PRICE = (SELECT MAX(PRICE) PRICE FROM FOOD_PRODUCT); 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr
[programmers] 가격대 별 상품 개수 구하기 문제 PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요. 풀이 - 가격대 별로 구간을 나누기 위해 TRUNCATE(number, decimals) 사용 - 구간별 개수 출력 위해 COUNT(*) 사용 SELECT TRUNCATE(PRICE,-4) AS PRICE_GROUP, COUNT(*) AS PRODUCTS FROM PRODUCT GROUP BY TRUNCATE(PRICE,-4) ORDER BY PRICE_..
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가 테이..

728x90