Kiểm soát bảng SAP ABAP với các ví dụ

Anonim

Điều khiển bảng và vòng lặp bước là các đối tượng để hiển thị bảng trên màn hình mà bạn thêm vào màn hình trong Trình ghép màn hình.
Từ quan điểm lập trình, điều khiển bảng và vòng lặp bước gần như hoàn toàn giống nhau. Điều khiển bảng chỉ đơn giản là các vòng lặp bước được cải tiến để hiển thị dữ liệu với giao diện được liên kết với các bảng trong ứng dụng máy tính để bàn.
Với điều khiển bảng, người dùng có thể:

  • Cuộn qua bảng theo chiều dọc và chiều ngang
  • Định lại kích thước chiều rộng của cột
  • Cuộn trong một trường (khi nội dung trường rộng hơn trường)
  • Chọn hàng hoặc cột trong bảng
  • Sắp xếp lại trình tự các cột
  • Lưu cài đặt hiển thị hiện tại để sử dụng trong tương lai

Điều khiển bảng cũng cung cấp các tính năng định dạng đặc biệt (một số tự động, một số tùy chọn) giúp bảng dễ nhìn và sử dụng hơn. Bảng điều khiển cung cấp -

  • tự động thay đổi kích thước bảng (dọc và ngang) khi người dùng thay đổi kích thước cửa sổ
  • đường phân cách giữa các hàng và giữa các cột (dọc và ngang)
  • trường tiêu đề cột cho tất cả các cột

Một tính năng của vòng lặp bước là các hàng trong bảng của chúng có thể kéo dài nhiều hơn một dòng trên màn hình. Mặt khác, một hàng của điều khiển bảng phải luôn được chứa trong một dòng duy nhất (mặc dù có thể cuộn).
Nói chung, nhiều tính năng được cung cấp bởi điều khiển bảng được xử lý cục bộ bởi giao diện người dùng SAPgui của hệ thống, vì vậy bạn không cần phải tự lập trình chúng. Ngoại lệ đáng chú ý duy nhất cho điều này là cuộn dọc .
Ví dụ (Giao dịch TZ60)


Cú pháp
Để xử lý các điều khiển bảng trong chương trình ABAP, bạn phải khai báo một điều khiển trong phần khai báo của chương trình cho mỗi điều khiển bảng bằng cách sử dụng câu lệnh sau:

KIỂM SOÁT  KIỂU BẢNG XEM LẠI SỬ DỤNG MÀN HÌNH 

trong đó là tên của điều khiển bảng trên màn hình trong chương trình ABAP. Điều khiển cho phép chương trình ABAP đọc các thuộc tính của điều khiển bảng và tác động đến điều khiển. Ở đây, là số màn hình nơi các giá trị ban đầu của bảng được tải.
Vị trí con trỏ cho điều khiển bảng có thể được đặt theo những cách sau:
Tại PBO, bạn có thể đặt con trỏ trên một trường cụ thể của một hàng cụ thể của điều khiển bảng.

ĐẶT LĨNH VỰC CURSOR  LINE 
 [OFFSET ]

Sử dụng phần bổ sung tùy chọn OFFSET, bạn có thể nhập độ lệch của con trỏ vào trường như được mô tả trong Cài đặt Vị trí Con trỏ.
Tại PAI, bạn có thể đọc vị trí con trỏ hiện tại.

NHẬN CURSOR FIELD  LINE 

Ngoài thông tin được cung cấp trong Tìm ra Vị trí Con trỏ, trường chứa thông tin về hàng nào của bảng điều khiển con trỏ hiện đang ở trên. Bạn cũng có thể dùng

NHẬN CURSOR LINE 
.

để xác định hàng của điều khiển bảng. SY-SUBRC cho phép bạn kiểm tra xem con trỏ có được đặt trong một hàng của điều khiển bảng hay không.
Để lấy dòng tương ứng của bảng nội bộ:

NHẬN dòng CURSOR 
.ind = 
 -top_line + 
 - 1.Đọc bảng  chỉ mục ind.

Biến hệ thống stepl - chứa chỉ số dòng bảng hiện tại trong một vòng lặp… endloop. Vòng lặp - chứa số dòng hiển thị trong bảng
Để tạo điều khiển
bảng 1. Thêm phần tử điều khiển bảng vào màn hình của bạn
2.Đặt tên cho điều khiển bảng. Trong chương trình ABAP, hãy khai báo một cấu trúc có cấu trúc giống nhau (KIỂM SOÁT loại TABLEVIEW SỬ DỤNG MÀN HÌNH )
3.Để tạo trường, hãy vào hàm Dict./Program fields.

  • Nhập tên của cấu trúc có các trường bạn muốn. (Nếu bạn muốn nó chọn nó từ từ điển của chương trình của bạn, hãy nhấp vào nút bấm có liên quan).
  • Trong danh sách trường chọn các trường bạn muốn và chọn ok.
  • Nhấp vào khu vực điều khiển bảng

Nếu bạn muốn có một cột lựa chọn, hãy chọn hộp kiểm thích hợp trong các thuộc tính và đặt tên cho cột đó. Tạo trường trong chương trình ABAP.
Trong PBO, bạn nên có tuyên bố

ĐĂNG NHẬP tại  SỬ DỤNG ĐIỀU KHIỂN .KẾT THÚC.

Trong PAI, bạn nên có.

ĐĂNG NHẬP tại .KẾT THÚC.

Chính trong các vòng lặp mà việc truyền dữ liệu xảy ra giữa màn hình và bảng nội bộ. Khi bạn điền bảng nội bộ, hãy sử dụng DESCRIBE TABLE LINES -lines, để lưu trữ tổng số dòng trong điều khiển. có thể được sử dụng để kiểm soát khi quá trình truyền dữ liệu xảy ra
Để thay đổi thuộc tính của các ô riêng lẻ, tạm thời thay đổi bảng MÀN HÌNH trong PBO. Bạn có thể thay đổi các thuộc tính của cấu trúc được tạo bởi câu lệnh CONTROLS

 -fixed_cols, v.v. là các thuộc tính của điều khiển -cols-index, v.v. là các thuộc tính của các cột. -cols-screen-hidden, v.v. là các thuộc tính màn hình của mỗi cột.