Báo cáo ALV ở SAP Hướng dẫn – Trình xem danh sách ABAP
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. Để triển khai những tính năng này từ đầu, cần phải bỏ ra 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 gọi là Trình xem danh sách ABAP (ALV).
Mỗi báo cáo này cung cấp module chức năng giúp tạo ra sản lượng 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 này báo cáo Chúng tôi -
- Tái sử dụng_alv_fieldcatalog_merge
- Tái sử dụng_alv_list_display
- Tái sử dụng_alv_events_get
- Tái sử dụng_alv_grid_display
- Tái sử dụng_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
Mô-đun chức năng này được sử dụng để điền vào 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 đều được chọn thì chúng ta không cần phải tạo riêng danh mục trường. Chỉ cần đề cập đến tên bảng dưới dạng tham số (I_structure_name) trong REUSE_ALV_LIST_DISPLAY là đủ. 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 thủ công bằng cách điền tất cả các thông tin chi tiết cần thiết vào bảng bên trong
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 tất cả các biểu mẫu động được xử lý.
2. Thay đổi
- ct_fieldcat : một bảng nội bộ với loại SLIS_T_FIELDCAT_ALV được khai báo trong nhóm loại 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ã chức năng.
- I_structure name : 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ộ có 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ộ có 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. Bảng:
- Một. 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 khẩu:
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 đã chỉ định (cột 'NAME'). Để các sự kiện được Lệnh gọi lại 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 'FORM' đượ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ừ nhóm loại SLIS.
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 chặn đơ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ạng lưới thay vì xem trước.
Tham số: giống như tái sử dụng_alv_list_display
Lưu ý: Lưới 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 rất nhiều tài nguyên/thời gian nếu khối lượng dữ liệu cần hiển thị lớn. Không có định nghĩa rõ ràng nào về việc nếu lượng dữ liệu là X thì hãy chọn 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ộ có tiêu đề kiểu slis_t_listheader.
Bảng nội bộ này có ba trường:
- Loại: 'H' – tiêu đề, 'S' – lựa chọn, 'A' – hành động
- Key : chỉ khi gõ là 'S'.
- Thông tin: văn bản cần in
Chặn báo cáo
Đâ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ó 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 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 sẽ chuyển sang báo cáo khối 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 tái sử dụng_alv_list_display hoặc tái sử dụng_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ố đều 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. 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 bán hàng có thể là dữ liệu tiêu đề trong khi các mặt hàng trong đơn đặt hàng bán hàng có thể là dữ liệu mặt hàng
Mô-đun chức năng được sử dụng cho việc này là
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Xuất khẩu:
- 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 nội bộ trong chương trình chứa dữ liệu đầu ra của cấp phân cấp cao nhất.
- I_tabname_item : Tên của bảng nội bộ trong chương trình chứa dữ liệu đầu ra của cấp phân cấp thấp nhất.
- Is_keyinfo : Cấu trúc này chứa tên trường bảng tiêu đề và mục liên kết hai bảng (khóa chung).
Bàn
- t_outtab_header : Bảng tiêu đề có dữ liệu được xuất ra
- t_outtab_item : Tên của bảng nội bộ trong chương trình chứa dữ liệu đầu ra của cấp phân cấp thấp nhất.
Tất cả các định nghĩa về bảng, cấu trúc và hằng bên trong được khai báo trong một nhóm kiểu được 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 và tổng phụ, v.v.
- Các biến thể hiển thị có thể dành riêng cho người dùng và tiêu chuẩn (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ể lưu được kiểm soát bởi tham số i_save được truyền trong các mô-đun chức năng tái sử dụng_alv_list_display / tái sử dụng_alv_grid_display
- Bạn có thể cung cấp tùy chọn trên màn hình lựa chọn để chọn biến thể hiển thị nào sẽ được sử dụng
Các mô-đun chức năng phổ biến liên quan đến việc chọn/xác nhận các biến thể hiển thị là
- Tái sử dụng_alv_variant_default_get
- Tái sử dụng_alv_variant_f4
- Tái sử dụng_alv_variant_existence
Đó là tất cả để ABAP – Lập trình ALV!