REPORT PROGRAM
- Executable Program
- Interactive Program
- 데이터베이스에서 원하는 데이터를 추출하고 해당 데이터를 정보로 활용할 수 있는 구조로 변경하여 리포트 형식으로 조회
- 자체적으로 직접 실행해서 submit을 통해 다른 프로그램에서 호출가능함
Report 프로그램은 3가지 구조로 분류됨
1. 데이터 선언부와 조회 선택화면 (Selection-Screen)
2. 실행 시점까지의 Event
3. 데이터를 뿌려주는 List Event
위 코드의 report 프로그램의 3가지 분류
1. 프로그램 및 데이터 선언
REPORT pgm_id
TABLES : sflight.
DATA : l_carrid type sflight-carrid.
SELECTION-OPTIONS: sel_carr FOR sflight-carrid.
PARAMETERS : P_carr LIKE sflight-carrid.
2. 이벤트
INITIALIZATION.
AT SELECTION-SCREEN.
START-OF-SELECTION.
...
END-OF-SELECTION.
3. List Process이벤트
TOP-OF-PAGE.
END-OF-PAGE.
AT LINE-SELECTION.
AT PF<NN>
AT USER-COMMAND.
프로그램 선언문
1) 프로그램 list heading 지정
REPORT z12_02 NO STANDARD PAGE HEADING.
이러면 heading 제목이 안나온다.
2) Line-Size
REPORT Z12_02 LINE-SIZE 30.
3) Message ID
이렇게 Message-ID를 선언하고 에러처리를 하면,
위와 같이 뜬다-!
DATA 선언
프로그램에서 사용하게 될 테이블과 데이터를 선언한다.
복잡한 프로그램에서는 INCLUDE(프로그램이름) TOP구문에 포함된다.
REPORT pgm_id
INCLUDE pgm_idTOP.
SELECTION-SCREEN
SELECT-OPTIONS: s_carrid FOR sflight-carrid.
항공사 코드 : [_____] ~ [_____] ← 여러 개 or 범위 입력 가능
- 프로그램 조회 조건을 입력하는 selection screen을 생성하는 부분
- 리포트 프로그램이 실행되면 selection-screen이 자동으로 생성됨
- selection-screen은 사용자와 상호작용하기 위한 input필드와 같이 선택 조건을 입력할 수 있는 화면을 제공
- 리포트 프로그램에서 selection screen은 'include 프로그램명sel(or TOP)에 포함하는 것이 좋음
PARAMETERS
PARAMETERS: p_carrid TYPE sflight-carrid.
항공사 코드 : [______] ← 단일 입력 가능
- parameters는 사용자가 값을 입력하도록 INPUT 필드를 정의함 <-> select-options: 여러값, 범위 선택가능
- parameters 변수와 같이 type을 지정하지 않으면 기본 char 1자리 type이 정의됨
- parameters에 입력된 값은 데이터를 조회하는 select 구문의 조건 등에 사용된다.
- 파라미터는 1개의 값만 입력받으며, 체크 박스와 같은 옵션을 추가할 수 있다.
PARAMETERS 주요 옵션 정리
옵션 | 설명 |
OBLIGATORY | 필수 입력 필드로 만들어줌 (입력 안 하면 오류 발생) |
DEFAULT | 기본값 지정 |
LOWER CASE | 소문자 입력 허용 (기본은 자동 대문자 변환) |
AS CHECKBOX | 체크박스 형태로 표시 (값은 'X' 또는 초기값) |
RADIOBUTTON GROUP | 라디오 버튼 그룹 지정하여 단일 선택 가능 |
MODIF ID | 다이나믹 화면 제어 시 사용 (선택화면의 특정 항목만 ON/OFF 등) |
PARAMETERS: p_name TYPE char20 OBLIGATORY,
p_age TYPE i DEFAULT 25,
p_accept AS CHECKBOX,
p_gender1 RADIOBUTTON GROUP grp1 DEFAULT 'X',
p_gender2 RADIOBUTTON GROUP grp1,
p_note TYPE char100 LOWER CASE.
- p_name: 꼭 입력해야 함.
- p_age: 기본값 25.
- p_accept: 체크박스 (X 또는 공백).
- p_gender1, p_gender2: 성별 중 택1 선택 (라디오버튼).
- p_note: 소문자 허용.
Parameters와 함께 쓰이는 구문
위와 같이 결과값이 출력된다!
SELECT-OPTIONS
SELECT-OPTIONS <seltab> FOR <f>.
- 2개의 input필드를 통해 다양한 조건 값을 입력받을 수 있음
- range 변수와 같은 구조_인터널 테이블을 가지고 있다.
- select-options는 항상 for문과 같이 병핸한다.
- for문 다음으로 올 수 있는 값은 tables로 선언된 테이블 필드명이나, data로 선언된 변수이어야 한다.
옵션 | 설명 |
OBLIGATORY | 필수로 입력해야 함 |
DEFAULT | 초기값 지정 |
NO INTERVALS | 범위 입력 안 됨 → 단일값만 입력 가능 |
NO-EXTENSION | 여러 줄 입력 금지 → 하나의 값/조건만 입력 |
LOWER CASE | 소문자 입력 허용 |
selection-screen
parameters와 selection-option을 사용하면 abap프로그램이 자동으로 필드내역과 길이를 조절하여, 화면(Selection-screen)을 생성한다.
구문 | 발생 |
selection-screen begin of line. selection-screen end of line. |
- 파라미터를 여러 개 묶어서 한 라인으로 생성 - 라인에서 selection-options, selection -screen skip n구문은 사용이 안됨 |
selection-screen skip n. | 빈 라인 n개를 삽입함 |
selection-screen ULINE. | Under line을 추가함 - selection-screen uline /1(10) : /는 new 라인, 위치 - selection-screen uline pos_low(10) : 파라미터 위치에서 시작 - selection-screen uline pos_high(10) : 리포트 라인 길이 끝에서 시작 |
selection-screen POSITION pos. | selection-screen begin of line. 블록 안에서 파라미터의 위치를 지정함 |
selection-screen COMMENT fmt name. | 파라미터에 대한 내역을 지정 - fmt는 /pos(len) or (len)을 의미 - selection-screen comment 1(10) text-1 FOR FIELD p_1. |
selection-screen PUSHBUTTON fmt name USER-COMMAND ucom. |
화면 버튼을 추가하여 클릭하면 AT SELECTION-SCREEN에서 SSCRFIELDS-UCOMM에 저장됨 |
selection-screen BEGIN OF BLOCK block. selection-screen END OF BLOCK blcok. |
Parameter, select-options등 블록형성 |
selection-screen FUNCTION key n. | 펑션 키를 추가함 |
'SAP' 카테고리의 다른 글
easy abap 41. Report Program - List Process (0) | 2025.05.16 |
---|---|
easy abap 40. Report Program - 이벤트 (0) | 2025.05.16 |
easy abap 38. 필드심볼_Field Symbol (0) | 2025.05.16 |
easy abap 37. VIEW_뷰, 도메인 (0) | 2025.05.14 |
easy abap 36. strucutre (0) | 2025.05.14 |