Các tính năng mong muốn phổ biến của bất kỳ báo cáo nào là "căn chỉnh cột", sắp xếp, lọc, tổng phụ, tổng, v.v. Để thực hiện các tính năng này từ đầu, cần rất nhiều nỗ lực mã hóa. Để tránh điều đó, chúng ta có thể sử dụng một khái niệm được gọi là ABAP List Viewer (ALV).
Trong hướng dẫn này, bạn sẽ học:
- Báo cáo đơn giản
- Báo cáo khối
- Báo cáo phân cấp
- Hiển thị các biến thể
Mỗi báo cáo này cung cấp các mô-đun chức năng giúp tạo ra đầu ra mong muốn mà không cần nỗ lực nhiều. Hãy xem xét chúng một cách chi tiết -
Báo cáo đơn giản
Các mô-đun chức năng quan trọng trong báo cáo này là:
- Reuse_alv_fieldcatalog_merge
- Reuse_alv_list_display
- Reuse_alv_events_get
- Reuse_alv_grid_display
- Reuse_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
Mô-đun chức năng này được sử dụng để điền danh mục trường cần thiết để hiển thị dữ liệu trong ALV.
Nếu dữ liệu đầu ra là từ một bảng từ điển duy nhất và tất cả các cột được chọn, thì chúng ta không cần tạo riêng danh mục trường. Nó đủ để đề cập đến tên bảng như một tham số (I_ architecture_name) trong REUSE_ALV_LIST_DISPLAY. Nhưng trong những trường hợp khác, chúng ta cần tạo ra nó.
Lưu ý: Fieldcatalog cũng có thể được điền theo cách thủ công bằng cách điền tất cả các chi tiết được yêu cầu vào bảng nội bộ
Các thông số quan trọng trong là:
1. Xuất:
- I_program_name: id báo cáo
- I_internal_tabname: bảng đầu ra nội bộ
- I_inclname: bao gồm hoặc tên báo cáo nơi xử lý tất cả các biểu mẫu động.
2. Thay đổi
- ct_fieldcat: bảng nội bộ có kiểu SLIS_T_FIELDCAT_ALV được khai báo trong kiểu nhóm SLIS.
REUSE_ALV_LIST_DISPLAY
Đây là mô-đun chức năng in dữ liệu.
Các thông số quan trọng là:
1. Xuất:
- I_callback_program: id báo cáo
- I_bypassing_buffer: 'X'
- I_buffer_active: ''
- I_callback_pf_status_set: quy trình trong đó người dùng có thể đặt trạng thái pf của riêng mình hoặc thay đổi chức năng của trạng thái pf hiện có.
- I_callback_user_command: quy trình xử lý các mã hàm.
- Tên cấu trúc I: tên của bảng từ điển
- Is_Layout: cấu trúc để thiết lập bố cục của báo cáo
- It_fieldcat: bảng nội bộ với danh sách tất cả các trường và thuộc tính của chúng sẽ được in (bảng này có thể được hàm tự động điền)
- It_events: bảng nội bộ với danh sách tất cả các sự kiện có thể xảy ra của ALV và tên biểu mẫu tương ứng của chúng.
2. Các bảng:
- a. t_outtab: bảng nội bộ với dữ liệu được xuất ra
REUSE_ALV_EVENTS_GET:
Trả về bảng các sự kiện có thể xảy ra cho loại danh sách aa
1. Nhập:
Et_Events: Bảng sự kiện được trả về với tất cả các sự kiện CALLBACK có thể có cho loại danh sách được chỉ định (cột 'NAME'). Đối với các sự kiện được Callback xử lý, trường 'MẪU' của chúng phải được điền. Nếu trường được khởi tạo, sự kiện sẽ bị bỏ qua. Mục nhập có thể được đọc từ bảng sự kiện, trường 'MẪU' được điền và mục nhập được sửa đổi bằng cách sử dụng các hằng số từ SLIS nhóm loại.
2. Xuất:
I_list_type: 0 = danh sách đơn giản REUSE_ALV_LIST_DISPLAY
1 = danh sách tuần tự phân cấp REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = danh sách khối đơn giản REUSE_ALV_BLOCK_LIST_APPEND
3 = danh sách khối tuần tự phân cấp REUSE_ALV_BLOCK_LIST_HS_APPEND
REUSE_ALV_GRID_DISPLAY
Một chức năng mới từ phiên bản ABAP4.6, để hiển thị kết quả dưới dạng lưới thay vì xem trước.
Tham số: giống như reuse_alv_list_display
Lưu ý: Grid không thể xử lý khối lượng lớn. Các chức năng như sắp xếp, cuộn xuống tiêu tốn nhiều tài nguyên / thời gian nếu khối lượng dữ liệu cần hiển thị nhiều. Không có định nghĩa cắt giảm rõ ràng như vậy nếu lượng dữ liệu là X sẽ được chuyển cho danh sách hoặc lưới nhưng nhà phát triển phải thực hiện cuộc gọi dựa trên kinh nghiệm của mình. Nếu không chắc chắn, thì danh sách là lựa chọn tốt hơn
REUSE_ALV_COMMENTARY_WRITE
Điều này được sử dụng trong sự kiện Đầu trang để in các tiêu đề và các nhận xét khác cho danh sách.
Các thông số quan trọng
- It_list_commentary: Bảng nội bộ với các tiêu đề của loại slis_t_listheader.
Bảng nội bộ này có ba trường:
- Typ: 'H' - tiêu đề, 'S' - lựa chọn, 'A' - hành động
- Phím: chỉ khi kiểu chữ là 'S'.
- Thông tin: văn bản được in
Báo cáo khối
Báo cáo này trông giống như một báo cáo đơn giản nhưng báo cáo này chỉ có các tính năng sắp xếp và lọc. Báo cáo này được sử dụng nếu bạn phải hiển thị nhiều hơn một báo cáo trên đầu ra. Về mặt kỹ thuật, nếu bạn có nhiều bảng nội bộ với dữ liệu được hiển thị dưới dạng các khối riêng biệt thì chúng tôi đi đến báo cáo khối của ALV.
Các chức năng quan trọng được sử dụng để tạo báo cáo này là:
- REUSE_ALV_BLOCK_LIST_INIT
- REUSE_ALV_BLOCK_LIST_APPEND
- REUSE_ALV_BLOCK_LIST_DISPLAY
REUSE_ALV_BLOCK_LIST_INIT
Mô-đun chức năng này được sử dụng để đặt trạng thái gui mặc định, v.v. Các tham số tương tự như tham số được sử dụng trong reuse_alv_list_display hoặc reuse_alv_grid_display
REUSE_ALV_BLOCK_LIST_APPEND
Mô-đun chức năng này thêm dữ liệu vào khối.
Các thông số quan trọng
1.Xuất khẩu:
- is_layout: cài đặt bố cục cho khối
- it_fieldcat: danh mục trường
- I_tabname: tên bảng nội bộ với tất cả các sự kiện có thể xảy ra
2. bảng:
- t_outtab: bảng nội bộ với dữ liệu đầu ra.
REUSE_ALV_BLOCK_LIST_DISPLAY
Mô-đun chức năng này hiển thị danh sách với dữ liệu được thêm vào bởi chức năng trên.
Tham số: Tất cả các tham số là tùy chọn.
Báo cáo phân cấp
Hiển thị phân cấp được sử dụng để hiển thị dữ liệu có liên quan. Giống như đơn đặt hàng bán hàng và chi tiết mặt hàng. Ở đây chi tiết đơn đặt hàng có thể là dữ liệu tiêu đề trong khi chúng các mục trong đơn đặt hàng có thể là dữ liệu mặt hàng
Mô-đun chức năng được sử dụng cho điều này là
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Xuất:
- I_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_LAYOUT
- It_fieldcat
- It_events
- I_tabname_header: Tên của bảng bên trong chương trình chứa dữ liệu đầu ra của mức phân cấp cao nhất.
- I_tabname_item: Tên của bảng bên trong chương trình chứa dữ liệu đầu ra của mức phân cấp thấp nhất.
- Is_keyinfo: Cấu trúc này chứa các tên trường của bảng tiêu đề và mục liên kết hai bảng (khóa chia sẻ).
Những cái bàn
- t_outtab_header: Bảng tiêu đề với dữ liệu được xuất
- t_outtab_item: Tên của bảng bên trong chương trình chứa dữ liệu đầu ra của mức phân cấp thấp nhất.
Tất cả các định nghĩa của bảng, cấu trúc và hằng số bên trong được khai báo trong một nhóm kiểu gọi là SLIS. Bảng nội bộ này có thể được điền tự động bằng cách sử dụng REUSE_ALV_FIELDCATALOG_MERGE '.
Hiển thị các biến thể
- Các biến thể hiển thị được sử dụng để đặt các thuộc tính mặc định của đầu ra alv như tiêu chí sắp xếp, tiêu chí lọc, tổng cộng và tổng phụ, v.v.
- Các biến thể hiển thị có thể là tiêu chuẩn và cụ thể cho người dùng (bất kỳ người dùng nào cũng có thể sử dụng các biến thể tiêu chuẩn)
- Loại biến thể hiển thị có thể được lưu được kiểm soát bởi tham số i_save được truyền trong mô-đun chức năng reuse_alv_list_display / reuse_alv_grid_display
- Bạn có thể cung cấp một tùy chọn trên màn hình lựa chọn để chọn biến thể hiển thị sẽ được sử dụng
Các mô-đun chức năng phổ biến liên quan đến việc lựa chọn / xác thực các biến thể hiển thị là
- Reuse_alv_variant_default_get
- Reuse_alv_variant_f4
- Reuse_alv_variant_existence
Đó là tất cả để lập trình ABAP- ALV!