ABAP Report

Ngày 10 tháng 9 năm 2017 | 978 views

Reports

SAP-ABAP hỗ trợ hai kiểu chương trình: ABAP Report và ABAP Dialog, ABAP report thường dùng để trích xuất dữ liệu từ CSDL hiện thị ra màn hình theo định dạng nhất định. Để tạo một chương trình ABAP Report chúng ta sử dụng Tcode SE38 ,Kiểu chương trình của ABAP Report là kiểu 1 là :Executable Program

Khi bạn chạy một trường trình report thì nó hiển thị hai dạng màn hình : Selection và Ouput

  • Selection screen: Màn hình đầu tiên để bạn cung cấp các tiêu chí lựa chọn (selection criteria) dự vào các thám số đó để lấy dữ liệu theo điều kiện.

  • Output screen : Là màn hình hiển thị kết quả dữ liệu trả ra từ CSDL

Message Class trong ABAP report : Dùng để giao tiếp với NSD

Cú pháp sử dụng message class cơ bản trong chương trình:

Message <Type><message no in message class>

Line-size: Kích thước 1 dòng hiển thị dữ liệu trên output screen

Line-count: Số dòng hiển thị trên một page

Các sự kiện được sử dụng trong chương trình ABAP Report :

  • Initialisation
  • At Selection Screen
  • At Selection Screen Output
  • Start of Selection
  • End of Selection
  • Top of Page
  • End of Page
  • At Line Selection
  • At User Command

Initialisation :

Sự kiên được thực thi đầu tiên trước hiển thị selection screen : Thường được sử dụng để khởi tạo các giá trị mặc địch, mặc định giá trinh trên màn hình selection screen

AT SELECTION SCREEN :

Sự kiện được thực thi sau khi người sử dụng nhấn « Enter » trên selection screen, sự kiện này được sử dụng để kiểm tra dữ liệu đầu vào.

AT SELECTION-SCREEN OUTPUT

Sự kiện được thư thi trước khi hiển thị selection screen : Thường được sử dụng để điểu khiển ẩn/hiện, thay đổi thuộc tính của trường thông tin trên selection screen…

START-OF-SELECTION

Sự kiện thực hiện các xử lý chính của chương trình (main processing) được thực thi sau khi người sử dụng bấm « Execute » trên selection screen

END-OF-SELECTION

Sự kiện được thực thi sau START-OF-SELECTION

 

Khi viết chương trình ABAP report thì không nhất thiết các bạn phải sử dụng hết các events, khi không chỉ định rõ events nào thì mặc nhiên các câu lệnh abap được thực thi như một phần của event block “start-of-selection”

 

Ví dụ: Chúng ta viết một chương trình report lấy ra danh sách lịch trình chuyến bay trong bảng SPFLI, có tham số đầu vào mã hãng hàng không

Và phải thực hiện kiểm tra tham số đầu vào mã hãng hàng không là “LH” với điều kiện đầu vào thỏa mãn thì ta chạy chương trình lấy dữ liệu ra và hiện thị trên output screen

 

Khai báo ABAP Report: Sử dụng Tcode SE38

REPORT ZPG_0001_02
  MESSAGE-ID ZMS_0001
  LINE-SIZE 255
  LINE-COUNT 200.

Định nghĩa một internal table để chứa dữ liệu select từ CSDL

*--------------------------------------------------------------------*
*& Define Data
*--------------------------------------------------------------------*
DATA:
      LT_SFLIGHT TYPE TABLE OF SPFLI WITH HEADER LINE.

Định nghĩa màn hình selection với tham số carrier id

*--------------------------------------------------------------------*
*& Define Selection Screen
*--------------------------------------------------------------------*
PARAMETERS:
  P_CARID TYPE SPFLI-CARRID.

Định nghĩa event “AT SELECTION-SCREEN.” Để kiểm tra tham số đầu vào

*--------------------------------------------------------------------*
*& Event: At selection screen
*--------------------------------------------------------------------*
AT SELECTION-SCREEN.
  IF P_CARID IS INITIAL.
    MESSAGE E001.
  ENDIF.

Định nghĩa event “START-OF-SELECTION.” Thực hiện lấy dữ liệu từ bảng SPFLI

*--------------------------------------------------------------------*
*& Event: Start-of-selection
*--------------------------------------------------------------------*
START-OF-SELECTION.
  SELECT * FROM SPFLI
    INTO TABLE LT_SFLIGHT
    WHERE CARRID = P_CARID.

Định nghĩa events “END-OF-SELECTION.” để hiển thị dữ liệu ra output screen

*--------------------------------------------------------------------*
*& Event: END-OF-SELECTION
*--------------------------------------------------------------------*
END-OF-SELECTION.
  DATA:
        LS_SFILGHT TYPE SPFLI.

  LOOP AT LT_SFLIGHT INTO LS_SFILGHT.
    WRITE:/ LS_SFILGHT-CARRID,
            LS_SFILGHT-CONNID,
            LS_SFILGHT-CITYFROM,
            LS_SFILGHT-AIRPFROM,
            LS_SFILGHT-CITYTO,
            LS_SFILGHT-AIRPTO,
            LS_SFILGHT-FLTIME,
            LS_SFILGHT-DEPTIME,
            LS_SFILGHT-ARRTIME,
            LS_SFILGHT-DISTANCE.
    NEW-LINE.
  ENDLOOP.

 

Kết quả thực hiện chương trình

Method Import file excel vào internal table

Ngày 18 tháng 9 năm 2018

18-09-2018
298
Abap Dictionary(DDIC)

Ngày 18 tháng 8 năm 2017

18-08-2017
898
Giới thiệu ngôn ngữ lập trình ABAP

Ngày 25 tháng 7 năm 2017

25-07-2017
3933