SAP Lập trình báo cáo ABAP
⚡ Tóm tắt thông minh
Lập trình báo cáo ABAP xây dựng các chương trình thực thi để chọn, xử lý và hiển thị khối lượng lớn dữ liệu. SAP Dữ liệu. Trang này giải thích về các phần bổ sung tiêu đề báo cáo, màn hình lựa chọn, trình tự sự kiện, lệnh định dạng, danh sách tương tác và cơ sở dữ liệu logic.
Lập trình báo cáo ABAP là gì?
SAP-ABAP hỗ trợ hai loại chương trình – Chương trình báo cáo và Chương trình hội thoại. Chương trình báo cáo được sử dụng khi cần hiển thị một lượng lớn dữ liệu.
Mục đích/Sử dụng Chương trình Báo cáo
- Chúng được sử dụng khi cần chọn lọc và xử lý dữ liệu từ nhiều bảng trước khi trình bày.
- Được sử dụng khi báo cáo yêu cầu định dạng đặc biệt.
- Được sử dụng khi báo cáo phải được tải xuống từ SAP sang một trang tính Excel để phân bổ.
- Được sử dụng khi báo cáo phải được gửi qua thư cho một người cụ thể.
Những điểm quan trọng cần lưu ý về chương trình báo cáo
- Chương trình báo cáo luôn là chương trình có thể thực thi được. Loại chương trình luôn là 1.
- Mỗi chương trình Báo cáo tương ứng với một Loại ứng dụng cụ thể, tức là với Bán hàng & Phân phối, FI – CO, v.v. Nó cũng có thể là Ứng dụng chéo, tức là loại '*'.
- Lập trình báo cáo là một chương trình hướng sự kiện.
- Dòng đầu tiên của chương trình báo cáo luôn là Báo cáo .
- Để loại bỏ tiêu đề danh sách hoặc tên của chương trình, phần bổ sung Không có tiêu đề trang chuẩn Được sử dụng.
- Kích thước dòng cho một báo cáo cụ thể có thể được đặt bằng cách sử dụng phép cộng kích thước đường thẳng .
- Số dòng cho một trang cụ thể có thể được đặt bằng cách sử dụng phép cộng số dòng n(n1). N là số dòng cho trang và N1 là số dòng dành cho chân trang.
- Để hiển thị bất kỳ thông tin hoặc thông báo lỗi nào, chúng ta thêm một lớp thông báo vào chương trình bằng cách sử dụng phép cộng: ID tin nhắn . Các lớp tin nhắn được duy trì trong SE91.
Vì vậy, một chương trình báo cáo lý tưởng nên bắt đầu bằng:
Report <report name> no standard page heading line-size <size> line-count <n(n1)> message-id <message class>.
Chương trình báo cáo so với chương trình hội thoại
Cả hai loại chương trình này đều chạy trên cùng một hệ thống, nhưng chúng giải quyết những vấn đề trái ngược nhau. Chương trình báo cáo đọc và hiển thị dữ liệu, trong khi chương trình đối thoại cho phép người dùng tương tác với dữ liệu thông qua các màn hình.
| Tiêu chí | Chương trình báo cáo | Chương trình Đối thoại |
|---|---|---|
| Loại chương trình | Loại 1, có thể thực thi | Loại M, nhóm mô-đun |
| Bắt đầu bởi | Tên chương trình hoặc mã giao dịch | Chỉ mã giao dịch |
| Kiểm soát lưu lượng | Các sự kiện như KHỞI TẠO và BẮT ĐẦU CHỌN | Logic luồng màn hình với các mô-đun PBO và PAI |
| Đầu vào của người dùng | Màn hình lựa chọn được tạo tự động | Màn hình được thiết kế trong Screen Painter |
| Sử dụng điển hình | Hiển thị và tải xuống khối lượng dữ liệu lớn | Tạo và thay đổi dữ liệu kinh doanh |
Màn hình lựa chọn là nơi báo cáo thu thập dữ liệu đầu vào, vì vậy nó sẽ được mô tả tiếp theo.
Màn hình lựa chọn
Màn hình "lựa chọn" là màn hình nơi người dùng chỉ định các giá trị đầu vào mà chương trình sẽ chạy với các giá trị đó.
Màn hình lựa chọn thường được tạo ra từ
- Thông số Kỹ thuật
- Lựa chọn các phương án
cú pháp
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 #>
Thông số Kỹ thuật
Các tham số giúp người ta thực hiện lựa chọn động. Chúng chỉ có thể chứa một giá trị cho một chu kỳ thực hiện chương trình.
cú pháp
Xác định tham số dưới dạng kiểu dữ liệu
Parameters p_id(30) type c.
Xác định các tham số giống như một trường bảng.
Parameter p_id like <table name>-<field name>.
Tham số có thể là Hộp kiểm hoặc Nút radio.
Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>. Parameters p_id2 radiobutton group <group name>.
Các tham số có thể là hộp danh sách.
Parameter p_id like <table name>-<field name> as listbox
Lựa chọn các phương án
Tùy chọn chọn được sử dụng để nhập một phạm vi giá trị hoặc một tập hợp giá trị cho chương trình
cú pháp
select-options s_vbeln for vbak-vbeln.
Ảnh chụp màn hình hiển thị các trường nhập liệu thấp và cao mà tùy chọn chọn tạo ra, cùng với nút chọn nhiều mục.
Bạn cũng có thể xác định một tùy chọn chọn giống như một biến
select-options s_vbeln for vbak-vbeln no intervals no-extension
Sau khi thu thập dữ liệu đầu vào, chương trình sẽ phản ứng theo một chuỗi sự kiện cố định.
Các sự kiện trong Chương trình Báo cáo ABAP
Các chương trình báo cáo ABAP là các chương trình hướng sự kiện. Các sự kiện khác nhau trong một Chương trình báo cáo là:
Tải chương trình
- Kích hoạt sự kiện liên quan trong phiên nội bộ sau khi tải chương trình loại 1, M, F hoặc S.
- Cũng chạy khối xử lý liên quan một lần và chỉ một lần cho mỗi chương trình và phiên nội bộ.
- Khối xử lý LOAD-OF-PROGRAM có chức năng tương tự đối với một chương trình ABAP thuộc loại 1, M, F hoặc S làm hàm tạo cho các lớp trong Đối tượng ABAP
Khởi tạo.
- Sự kiện này được thực hiện trước khi màn hình lựa chọn được hiển thị.
- Khởi tạo tất cả các giá trị.
- Bạn có thể gán các giá trị khác ngoài các giá trị mặc định trên màn hình lựa chọn.
- Bạn có thể lấp đầy màn hình lựa chọn của mình bằng một số giá trị khi chạy.
Tại màn hình lựa chọn.
- Sự kiện được xử lý khi màn hình lựa chọn đã được xử lý (ở cuối PAI ).
- Xác thực & Kiểm tra các giá trị đã nhập diễn ra ở đây
Bắt đầu lựa chọn.
- Ở đây chương trình bắt đầu chọn các giá trị từ các bảng.
Kết thúc lựa chọn.
- Sau khi tất cả dữ liệu đã được chọn, sự kiện này sẽ ghi dữ liệu ra màn hình.
Sự kiện tương tác
- Được sử dụng để báo cáo tương tác. Nó được sử dụng để tạo một danh sách chi tiết từ một danh sách cơ bản.
💡 Mẹo: Các câu lệnh được viết mà không có từ khóa sự kiện nào sẽ mặc định thuộc về START-OF-SELECTION, đó là lý do tại sao báo cáo vẫn chạy ngay cả khi thiếu sự kiện.
Ví dụ: Một chương trình báo cáo ABAP đơn giản
Chương trình bên dưới kết hợp các thông tin bổ sung, màn hình lựa chọn và các sự kiện thành một báo cáo hoàn chỉnh. Nó đọc tiêu đề đơn đặt hàng từ VBAK cho các số được nhập trên màn hình lựa chọn và ghi chúng dưới dạng danh sách.
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.
Có ba chi tiết đáng chú ý. Hàm INITIALIZATION điền tham số ngày tháng trước khi màn hình lựa chọn xuất hiện. Hàm AT SELECTION-SCREEN xác thực dữ liệu nhập và đưa ra thông báo từ lớp ZSD. Hàm HIDE lưu trữ số thứ tự của mỗi dòng đã ghi, do đó, nhấp đúp chuột có thể tạo một danh sách phụ từ đó, đây là nội dung của phần tiếp theo.
Định dạng báo cáo
ABAP cho phép các báo cáo được định dạng theo ý muốn của người dùng. Ví dụ: “Dòng thay thế” phải xuất hiện với các màu khác nhau và dòng “Tổng cộng” sẽ xuất hiện với màu Vàng.
cú pháp
Format Color n Format Color n Intensified On
n có thể tương ứng với nhiều con số khác nhau
Xin lưu ý rằng cũng có những bổ sung khác cùng với định dạng
FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF
Lập trình báo cáo tương tác
- Sử dụng lập trình tương tác, người dùng có thể chủ động kiểm soát việc truy xuất và hiển thị dữ liệu.
- Được sử dụng để tạo danh sách chi tiết từ một danh sách rất cơ bản.
- Dữ liệu chi tiết được ghi vào danh sách thứ cấp.
- Danh sách phụ có thể che phủ hoàn toàn màn hình đầu tiên hoặc có thể hiển thị nó trên màn hình mới
- Các danh sách phụ có thể tự tương tác.
- Danh sách đầu tiên cũng có thể gọi một giao dịch.
- Có nhiều sự kiện khác nhau liên quan đến lập trình tương tác.
Một số lệnh dùng trong lập trình tương tác
Hotspot
Nếu một người kéo chuột qua dữ liệu được hiển thị trong báo cáo, con trỏ sẽ thay đổi thành Bàn tay có ngón trỏ duỗi ra. Một điểm nóng có thể đạt được bằng cách sử dụng câu lệnh FORMAT.
Syntax: Format Hotspot On (Off).
Ẩn giấu
Lệnh này giúp bạn lưu trữ tên trường dựa trên đó tên trường sẽ được xử lý thêm để có danh sách chi tiết. Nó được viết trực tiếp sau câu lệnh WRITE cho một trường. Khi một hàng được chọn, các giá trị sẽ tự động được điền vào các biến để sử dụng tiếp.
Syntax: Hide <field-name>.
Các báo cáo đọc nhiều bảng có thể thay thế câu lệnh SELECT của chúng bằng một cơ sở dữ liệu logic, được mô tả bên dưới.
Cơ sở dữ liệu logic
- Thay vì sử dụng truy vấn “Chọn”, bạn có thể sử dụng cơ sở dữ liệu logic để truy xuất dữ liệu cho một chương trình.
- Cơ sở dữ liệu logic được tạo ra bởi giao dịch SE36
- Tên của cơ sở dữ liệu logic có thể dài tới 20 ký tự. Nó có thể bắt đầu bằng tiền tố không gian tên.
- Dữ liệu được chọn bởi một chương trình khác và người ta có thể truy cập dữ liệu bằng GET lệnh đặt dữ liệu vào vùng làm việc .
Ưu điểm của cơ sở dữ liệu logic so với các truy vấn Chọn thông thường.
- Nó cung cấp các điều kiện kiểm tra để xem liệu đầu vào có chính xác, đầy đủ và hợp lý hay không
- Nó chứa các kiểm tra ủy quyền trung tâm để truy cập cơ sở dữ liệu
- Những cải tiến như cải thiện hiệu suất sẽ được áp dụng ngay lập tức cho tất cả các báo cáo sử dụng cơ sở dữ liệu logic.
Lưu ý: Do tính phức tạp liên quan, cơ sở dữ liệu logic không được sử dụng trong hầu hết các trường hợp

