Page 1 of 1

Chương trình hiển thị danh sách với ALV đơn giản

Posted: Tue Mar 29, 2022 1:42 pm
by abaper
Trong bài viết này mình sẽ giới thiệu cho các bạn về công cụ được dùng để kết xuất ra báo cáo dạng danh sách một cách nhanh chóng được cung cấp bởi SAP thông qua một function module "REUSE_ALV_GRID_DISPLAY".
Trước tiên chúng ta đặt ra kích bản là người dùng muốn hiển thị tất cả các chuyến bay của một hãng hàng không cụ thể nào đó và do vậy việc hiển thị kết quả bằng danh sách là cần thiết. Và để tiến hành viết chương trình theo kịch bản yêu cầu chúng ta cần biết bảng dữ liệu cần thiết nơi lưu trữ tất cả các chuyến bay. Trong SAP, dữ liệu này được lưu ở bảng SFLIGHT và dữ liệu mã hãng hàng không được lưu trữ ở trường CARRID.
Từ các dữ thông tin có được ta biết được rằng dữ liệu cần nhập là mã CARRID và từ dữ liệu này chúng ta cần phải viết truy lấy tất cả các dữ liệu trong bảng SFLIGHT với điều kiện là có mã CARRID bằng giá trị được nhập. Chúng ta thực hiện viết code như sau:

Code: Select all

DATA: gt_sflight TYPE TABLE OF sflight.
PARAMETERS: p_crid TYPE sflight-carrid OBLIGATORY.

START-OF-SELECTION.

  SELECT * FROM sflight INTO TABLE gt_sflight WHERE carrid = p_crid.
Trong đó:
  • p_crid: tham số cho phép người dùng nhập mã chuyến bay
  • gt_sflight: đối tượng bảng dữ liệu được dùng để lưu trữ mã chuyến bay
Sau khi dữ liệu chuyến bay theo hãng hàng không đã được lấy lên từ cơ sở dữ liệu chung ta thực hiện gọi function module để hiển thị kết quả

Code: Select all

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_structure_name = 'SFLIGHT'
    TABLES
      t_outtab         = gt_sflight.
Trong đó:
  • i_structure_name = 'SFLIGHT': Cấu trúc hiển thị trên ALV
  • t_outtab = gt_sflight: khai báo dữ liệu danh sách đầu vào
Kết quả hiện thị của chương trình như sau:
reusealv.png
reusealv.png (88.4 KiB) Viewed 7147 times
Như các bạn có thể thấy với vài dòng code đơn giản chúng ta đã có thể kết xuất ngay lập tức 1 danh sách các dữ liệu yêu cầu cùng với các chức năng tiêu chuẩn được cung cấp bởi ALV như tìm kiếm, hiện thị chi tiết, sắp xếp v.v..