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

+ Recent posts