SAP ABAP 보고서 프로그래밍
⚡ 스마트 요약
ABAP 리포트 프로그래밍은 대량의 데이터를 선택, 처리 및 표시하는 실행 가능한 프로그램을 구축합니다. SAP 데이터. 이 페이지에서는 보고서 헤더 추가, 선택 화면, 이벤트 시퀀스, 서식 명령, 대화형 목록 및 논리 데이터베이스에 대해 설명합니다.

ABAP 리포트 프로그래밍이란 무엇인가요?
SAPABAP은 보고서 프로그램과 대화형 프로그램, 두 가지 유형의 프로그램을 지원합니다. 보고서 프로그램은 대량의 데이터를 표시해야 할 때 사용됩니다.
신고 프로그램의 목적/사용
- 여러 테이블의 데이터를 선택하고 처리한 후 표시해야 할 때 사용됩니다.
- 보고서에 특별한 형식이 요구될 때 사용됩니다.
- 보고서를 다운로드해야 할 때 사용됩니다. SAP Excel 시트로 배포됩니다.
- 특정한 사람에게 보고서를 우편으로 보내야 할 때 사용합니다.
신고 프로그램 관련 중요 참고 사항
- 보고서 프로그램은 항상 실행 가능한 프로그램입니다. 프로그램 유형은 항상 1입니다.
- 모든 보고서 프로그램은 판매 및 유통, FI – CO 등과 같은 특정 애플리케이션 유형에 해당합니다. 교차 애플리케이션(예: '*' 유형)일 수도 있습니다.
- 보고서 프로그래밍은 이벤트 기반 프로그래밍입니다.
- 보고 프로그램의 첫 번째 줄은 항상 Report입니다. .
- 목록 제목이나 프로그램 이름을 표시하지 않으려면 추가 표준 페이지 제목 없음 사용.
- 특정 보고서의 줄 크기는 추가 기능을 사용하여 설정할 수 있습니다. 라인 크기 .
- 특정 페이지의 줄 수는 추가 기능을 사용하여 설정할 수 있습니다. 라인 수 n(n1). N은 페이지의 줄 수이고 N1은 페이지 바닥글에 예약된 줄 수입니다.
- 정보나 오류 메시지를 표시하려면 다음 추가 기능을 사용하여 프로그램에 메시지 클래스를 추가합니다. 메시지 ID . 메시지 클래스는 SE91에서 유지됩니다.
따라서 이상적인 보고 프로그램은 다음과 같이 시작해야 합니다.
Report <report name> no standard page heading line-size <size> line-count <n(n1)> message-id <message class>.
보고서 프로그램 vs. 대화 상자 프로그램
두 프로그램 유형 모두 동일한 시스템에서 실행되지만, 해결하는 문제는 정반대입니다. 보고서 프로그램은 데이터를 읽고 표시하는 반면, 대화형 프로그램은 사용자가 화면을 통해 데이터를 관리할 수 있도록 합니다.
| 기준 | 보고서 프로그램 | 대화 프로그램 |
|---|---|---|
| 프로그램 유형 | 유형 1, 실행 가능 | M형, 모듈 풀 |
| 에 의해 시작 | 프로그램 이름 또는 거래 코드 | 거래 코드만 |
| 흐름 제어 | 초기화 및 선택 시작과 같은 이벤트 | PBO 및 PAI 모듈을 사용한 화면 흐름 로직 |
| 사용자 입력 | 생성된 선택 화면 | 스크린에서 디자인된 화면 Painter |
| 일반적인 사용 | 대용량 데이터 표시 및 다운로드 | 비즈니스 데이터 생성 및 변경 |
선택 화면은 보고서가 입력값을 수집하는 곳이므로, 다음에서 설명합니다.
선택 화면
"선택 화면"이란 프로그램이 실행될 입력값을 지정하는 화면을 말합니다.
선택 화면은 일반적으로 다음에서 생성됩니다.
- 파라미터
- 선택 옵션
통사론
Selection-screen begin of screen <screen #> selection-screen begin of block <#> with frame title <text> ......... ......... selection-screen end of block <#> selection-screen end of screen <screen #>
파라미터
매개변수는 동적 선택을 수행하는 데 도움이 됩니다. 프로그램 실행의 한 주기 동안 하나의 값만 수용할 수 있습니다.
통사론
매개변수를 데이터 유형으로 정의
Parameters p_id(30) type c.
테이블 필드와 같은 매개변수 정의
Parameter p_id like <table name>-<field name>.
매개변수는 체크박스와 라디오 버튼이 될 수 있습니다.
Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>. Parameters p_id2 radiobutton group <group name>.
매개변수는 목록 상자가 될 수 있습니다.
Parameter p_id like <table name>-<field name> as listbox
옵션 선택
Select-Option은 프로그램에 값 범위 또는 값 세트를 입력하는 데 사용됩니다.
통사론
select-options s_vbeln for vbak-vbeln.
스크린샷은 선택 옵션을 선택했을 때 생성되는 낮은 값과 높은 값 입력 필드와 다중 선택 버튼을 보여줍니다.
변수처럼 선택 옵션을 정의할 수도 있습니다.
select-options s_vbeln for vbak-vbeln no intervals no-extension
입력이 수집되면 프로그램은 정해진 일련의 이벤트에 따라 반응합니다.
ABAP 보고서 프로그램의 이벤트
ABAP 보고서 프로그램은 이벤트 중심 프로그램. 보고서 프로그램의 다양한 이벤트는 다음과 같습니다.
프로그램 로드
- 유형 1, M, F 또는 S의 프로그램을 로드한 후 내부 세션에서 관련 이벤트를 트리거합니다.
- 또한 각 프로그램 및 내부 세션에 대해 관련 처리 블록을 한 번만 실행합니다.
- 처리 블록 LOAD-OF-PROGRAM은 대략적으로 동일한 기능을 갖습니다. ABAP 프로그램 ABAP 객체의 클래스에 대한 생성자로서 유형 1, M, F 또는 S
초기화.
- 이 이벤트는 선택 화면이 표시되기 전에 실행됩니다.
- 모든 값을 초기화합니다.
- 선택 화면에서 기본값으로 설정된 값 외에 다른 값을 할당할 수 있습니다.
- 런타임에 일부 값으로 선택 화면을 채울 수 있습니다.
선택 화면에서.
- 선택 화면이 처리되면( PAI 끝) 이벤트가 처리됩니다.
- 입력된 값의 유효성 검사 및 확인이 여기에서 발생합니다.
선택 시작.
- 여기서 프로그램은 테이블에서 값을 선택하기 시작합니다.
선택 끝.
- 모든 데이터가 선택된 후 이 이벤트는 데이터를 화면에 씁니다.
인터랙티브 이벤트
- 대화형 보고에 사용됩니다. 기본 목록에서 세부 목록을 생성하는데 사용됩니다.
💡 팁: 이벤트 키워드 없이 작성된 문장은 기본적으로 START-OF-SELECTION에 속하므로 이벤트가 누락된 경우에도 보고서가 실행됩니다.
예시: 간단한 ABAP 보고서 프로그램
아래 프로그램은 추가 정보, 선택 화면 및 이벤트를 하나의 보고서로 통합합니다. 선택 화면에 입력된 번호에 해당하는 판매 주문 헤더를 VBAK에서 읽어와 목록으로 출력합니다.
REPORT z_sales_order_list NO STANDARD PAGE HEADING LINE-SIZE 80 LINE-COUNT 65(3) MESSAGE-ID zsd. TABLES: vbak. DATA: lt_vbak TYPE STANDARD TABLE OF vbak, ls_vbak TYPE vbak. * Selection screen SELECT-OPTIONS: s_vbeln FOR vbak-vbeln. PARAMETERS: p_erdat LIKE vbak-erdat. INITIALIZATION. p_erdat = sy-datum. AT SELECTION-SCREEN. IF p_erdat > sy-datum. MESSAGE e001(zsd). " Date must not lie in the future ENDIF. START-OF-SELECTION. SELECT * FROM vbak INTO TABLE lt_vbak WHERE vbeln IN s_vbeln AND erdat LE p_erdat. END-OF-SELECTION. LOOP AT lt_vbak INTO ls_vbak. WRITE: / ls_vbak-vbeln, ls_vbak-erdat, ls_vbak-netwr. HIDE ls_vbak-vbeln. ENDLOOP.
세 가지 사항을 주목할 필요가 있습니다. INITIALIZATION 함수는 선택 화면이 나타나기 전에 날짜 매개변수를 채웁니다. AT SELECTION-SCREEN 함수는 입력 내용을 검증하고 ZSD 클래스에서 메시지를 발생시킵니다. HIDE 함수는 작성된 각 행의 순서 번호를 저장하므로, 더블 클릭을 통해 이를 기반으로 보조 목록을 생성할 수 있으며, 이는 다음 섹션에서 다룹니다.
보고서 형식 지정
ABAP을 사용하면 사용자가 원하는 대로 보고서 형식을 지정할 수 있습니다. 예를 들어, "대체 라인"은 다른 색상으로 표시되어야 하고 "합계" 라인은 노란색으로 표시되어야 합니다.
통사론
Format Color n Format Color n Intensified On
n 다양한 숫자에 해당할 수 있습니다
형식과 함께 다른 추가 사항도 있습니다.
FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF
대화형 보고서 프로그래밍
- 대화형 프로그래밍을 사용하면 사용자는 데이터 검색 및 표시를 능동적으로 제어할 수 있습니다.
- 아주 기본적인 목록에서 상세한 목록을 만드는 데 사용됩니다.
- 자세한 데이터는 보조 목록에 기록됩니다.
- 보조 목록은 첫 번째 화면에 완전히 오버레이되거나 새 화면에 표시될 수 있습니다.
- 보조 목록은 그 자체로 대화형일 수 있습니다.
- 첫 번째 목록은 트랜잭션을 호출할 수도 있습니다.
- 대화형 프로그래밍과 관련된 다양한 이벤트가 있습니다.
대화형 프로그래밍에 사용되는 일부 명령
핫스팟
보고서에 표시된 데이터 위로 마우스를 끌면 커서가 뻗은 검지손가락을 가진 손으로 바뀝니다. FORMAT 문을 사용하여 핫스팟을 얻을 수 있습니다.
Syntax: Format Hotspot On (Off).
숨는 장소
이 명령은 자세한 목록을 얻기 위해 추가 처리를 수행할 필드 이름을 저장하는 데 도움이 됩니다. 이는 필드에 대한 WRITE 문 바로 뒤에 작성됩니다. 행을 선택하면 나중에 사용할 수 있도록 값이 변수에 자동으로 채워집니다.
Syntax: Hide <field-name>.
여러 테이블을 읽는 보고서는 아래에 설명된 논리적 데이터베이스를 사용하여 SELECT 문을 대체할 수 있습니다.
논리적 데이터베이스
- "선택" 쿼리를 사용하는 대신 논리 데이터베이스를 사용하여 프로그램에 대한 데이터를 검색할 수 있습니다.
- 논리적 데이터베이스는 트랜잭션에 의해 생성됩니다. SE36
- 논리적 데이터베이스의 이름은 최대 20자까지 가능합니다. 네임스페이스 접두사로 시작할 수 있습니다.
- 데이터는 다른 프로그램에 의해 선택되며 GET을 사용하여 데이터에 액세스할 수 있습니다. 작업 영역에 데이터를 배치하는 명령 .
일반 Select 쿼리에 비해 논리 데이터베이스의 장점
- 입력이 정확하고 완전하며 타당한지 확인하기 위한 검사 조건을 제공합니다.
- 데이터베이스 액세스에 대한 중앙 인증 확인이 포함되어 있습니다.
- 성능 향상 등의 개선 사항은 논리적 데이터베이스를 사용하는 모든 보고서에 즉시 적용됩니다.
참고: 복잡성으로 인해 대부분의 경우 논리적 데이터베이스는 사용되지 않습니다.
