Bảng nội bộ là gì?
BẢNG NỘI BỘ được sử dụng để lấy dữ liệu từ một cấu trúc cố định để sử dụng động trong ABAP. Mỗi dòng trong bảng nội bộ có cấu trúc trường giống nhau. Việc sử dụng chính cho các bảng bên trong là để lưu trữ và định dạng dữ liệu từ một bảng cơ sở dữ liệu trong một chương trình.
Trong hướng dẫn này, bạn sẽ học:
- Bảng nội bộ là gì?
- Khu vực làm việc là gì?
- Sự khác biệt giữa Bảng nội bộ và Khu vực làm việc?
- Các loại bảng nội bộ
- Tạo bảng nội bộ
- Điền các bảng nội bộ
- Sao chép bảng nội bộ
- Đọc nội bộ
- Xóa bảng nội bộ
Khu vực làm việc là gì?
Khu vực làm việc là các hàng dữ liệu đơn lẻ. Chúng phải có cùng định dạng với bất kỳ bảng nội bộ nào. Nó được sử dụng để xử lý dữ liệu trong một bảng nội bộ tại một thời điểm.
Sự khác biệt giữa Bảng nội bộ và Khu vực làm việc?
Một bức tranh nói một ngàn chữ :-)
Các loại bảng nội bộ
Có hai loại bảng nội bộ.
- Bảng nội bộ với dòng HEADER
- Bảng nội bộ không có dòng HEADER.
Bảng bên trong có dòng tiêu đề
- Tại đây hệ thống tự động tạo vùng làm việc.
- Vùng làm việc có cùng kiểu dữ liệu với bảng nội bộ.
- Khu vực làm việc này được gọi là dòng HEADER.
- Tại đây, tất cả các thay đổi hoặc bất kỳ hành động nào trên nội dung của bảng đều được thực hiện. Do đó, các bản ghi có thể được chèn trực tiếp vào bảng hoặc được truy cập trực tiếp từ bảng nội bộ.
Bảng nội bộ không có dòng tiêu đề :
- Ở đây không có khu vực làm việc nào được liên kết với bảng.
- Khu vực làm việc phải được chỉ định rõ ràng khi chúng ta cần truy cập các bảng như vậy.
- Do đó không thể truy cập trực tiếp các bảng này.
Tạo bảng nội bộ
Có nhiều cách để tạo Bảng nội bộ. Chúng ta hãy xem xét từng cái một- 1.Bằng cách sử dụng câu lệnh
Type
Bây giờ chúng ta hãy tạo một itab bảng nội bộ bằng cách sử dụng câu lệnh TYPE.
Cú pháp là -
Các loại: bắt đầu dòng,cột1 loại I,cột 2 loại I,kết thúc dòng.
Thí dụ:
CÁC LOẠI: đầu dòng,empno loại I,empname (20) loại c,kết thúc dòng.
Câu lệnh TYPES tạo một dòng cấu trúc như đã định nghĩa.
Để thực sự tạo một itab Bảng nội bộ, hãy sử dụng lệnh sau-
Dòng dữ liệu kiểu itab xảy ra 10.
Một itab bảng nội bộ được tạo với cấu trúc dòng. Các bản ghi bổ sung được ghi ra vùng phân trang và có thể ảnh hưởng đến hiệu suất.
2. Bằng cách tham chiếu đến Bảng khác
Bạn có thể tạo một bảng nội bộ bằng cách tham chiếu đến một bảng hiện có. Bảng hiện có có thể là bảng SAP tiêu chuẩn, bảng Z hoặc một bảng nội bộ khác.
Cú pháp-
Dữ liệu[với dòng tiêu đề].
Thí dụ-
DATA itab TYPE dòng OCCURS 10 với dòng tiêu đề.
Ở đây, một itab bảng nội bộ được tạo theo kiểu dòng với dòng tiêu đề. Xin lưu ý "với dòng tiêu đề" là tùy chọn
3. Bằng cách tham
khảo Cú pháp cấu trúc hiện có-
Dữ liệuLIKE xảy ra n [với dòng tiêu đề].
Thí dụ-
DỮ LIỆU itab NHƯ sline 10.
Ở đây, một bảng itab được tạo có cấu trúc giống như cấu trúc của sline
4. Bằng cách tạo một cấu trúc mới
Bây giờ chúng ta hãy tạo một bảng bên trong với cấu trúc của riêng chúng ta. Ở đây, bảng được tạo bằng dòng Tiêu đề, theo mặc định .
Cú pháp -
Dữ liệu: Bắt đầu củaxảy ra , ,…,Cuối .
Thí dụ -
Dữ liệu: Bắt đầu itab xảy ra 10,cột1 loại I,cột 2 (4) loại C,cột 3 như mara-ernam,Hết itab.
Bảng nội bộ itab được tạo
Điền các bảng nội bộ
Bây giờ chúng ta đã tạo thành công một số bảng nội bộ, hãy xem cách chúng ta điền chúng vào một số bản ghi. Có nhiều phương pháp khác nhau có sẵn để điền bảng 1. Nối dữ liệu từng dòng Phương pháp đầu tiên có sẵn là sử dụng câu lệnh APPEND.Sử dụng câu lệnh APPEND, chúng ta có thể thêm một dòng từ một vùng làm việc khác vào bảng nội bộ hoặc chúng ta có thể thêm một dòng đầu tiên vào bảng nội bộ…
Cú pháp -
PHÊ DUYỆT [Tại đây vùng làm việcĐẾN / DÒNG BAN ĐẦU ĐẾN] .
Biến hệ thống SY-TABIX chứa chỉ số của dòng nối thêm.
Thí dụ:
Dữ liệu: Bắt đầu itab xảy ra 10,col1 loại C,col2 loại I,cuối itab.Nối dòng đầu tiên vào itab.
Kết quả: '' '0'
Các dòng ban đầu thêm một dòng được khởi tạo với giá trị chính xác cho loại của nó vào bảng. Ở đây, col1 là một ký tự và col2 là một số nguyên. Sau đó APPEND dòng ban đầu, thêm một dòng được khởi tạo liên quan đến kiểu dữ liệu của các cột, tức là không gian cho col1 và 0 cho col2. 2. Sử dụng câu lệnhCOLLECT COLLECT là một dạng câu lệnh khác được sử dụng để điền các bảng bên trong. Nói chung COLLECT được sử dụng trong khi chèn các dòng vào bảng nội bộ với khóa tiêu chuẩn duy nhất.
Cú pháp-
THU THẬP [INTO] .
Trong trường hợp bảng có dòng Tiêu đề, tùy chọn INTO bị bỏ qua. Giả sử đã có một mục nhập có khóa giống với khóa mà bạn đang cố gắng thêm vào, khi đó một dòng mới không được thêm vào bảng, nhưng các trường số của cả hai mục nhập được thêm vào và chỉ có một mục nhập tương ứng với khóa. . Giá trị của SY-TABIX được thay đổi thành hàng của mục nhập ban đầu. Else COLLECT hoạt động tương tự như APPEND và SY-TABIX chứa chỉ mục của dòng được xử lý. 3 . Sử dụng câu lệnh INSERT Câulệnh INSERT thêm một dòng / vùng làm việc vào bảng nội bộ. Bạn có thể chỉ định vị trí mà tại đó dòng mới sẽ được thêm vào bằng cách sử dụng mệnh đề INDEX với câu lệnh INSERT.
Cú pháp
INSERT [Tại đây, vùng làm việc[index ].
Sao chép bảng nội bộ
Nội dung của một bảng nội bộ có thể được sao chép sang một bảng khác bằng cách sử dụng câu lệnh APPEND LINES hoặc INSERT LINES. Một cách đơn giản hơn là sử dụng bất kỳ cú pháp nào sau đây.CHUYỂNsang .HOẶC LÀ = .
Chúng sao chép nội dung của ITAB1 sang ITAB2. Trong trường hợp các bảng bên trong có dòng tiêu đề, chúng ta phải sử dụng [] inorder để phân biệt với vùng làm việc. Vì vậy, để sao chép nội dung của các bảng nội bộ với dòng tiêu đề, cú pháp trở thành,
itab1 [] = itab2 [].
Đọc bảng nội bộ
Bây giờ chúng ta đã quen thuộc với việc tạo các bảng bên trong và điền chúng bằng dữ liệu. Bây giờ chúng ta sẽ xem cách chúng ta thực sự sử dụng dữ liệu hoặc lấy dữ liệu từ các bảng bên trong. 1. Sử dụng Loop -EndloopMột trong những cách truy cập hoặc đọc bảng nội bộ là sử dụng LOOP-ENDLOOP.Cú pháp
ĐĂNG NHẬP TẠI[INTO
Ở đây khi bạn nói LOOP AT ITABLE, thì bảng nội bộ ITABLE được đọc từng dòng. Bạn có thể truy cập giá trị của các cột cho dòng đó trong bất kỳ phần nào của cấu trúc LOOP-ENDLOOP. Giá trị của SY-SUBRC được đặt thành 0 , ngay cả khi chỉ đọc một bản ghi. 2. Sử dụng READPhương pháp khác để đọc bảng nội bộ là sử dụng câu lệnh READ.
Cú pháp-BẢNG ĐỌC[INTO .
Câu lệnh này đọc dòng hoặc dòng hiện tại được chỉ định bởi chỉ mục. Giá trị của SY-TABIX là chỉ số của dòng được đọc. Nếu mục nhập có chỉ mục được chỉ định được tìm thấy, thì SY-SUBRC được đặt thành 0. Nếu chỉ mục được chỉ định nhỏ hơn 0, thì lỗi thời gian chạy sẽ xảy ra. Nếu chỉ mục được chỉ định vượt quá kích thước bảng thì SY-SUBRC được đặt thành 4. Xóa bảng nội bộ
Có nhiều cách để xóa các dòng khỏi bảng nội bộ. 1.Xóa các dòng trong một vòng lặp.
Đây là cách đơn giản nhất để xóa dòng.
SytaxXÓA.
Câu lệnh này chỉ hoạt động trong một vòng lặp. Nó xóa dòng hiện tại. Bạn có thể xóa các dòng trong vòng lặp có điều kiện bằng cách thêm mệnh đề WHERE. 2.Xóa các dòng bằng cách sử dụng chỉ mục.
Điều này được sử dụng để xóa một dòng khỏi bảng nội bộ tại bất kỳ chỉ mục biết nào.
Cú phápXÓADòng có chỉ mụcINDEX . bị xóa. Chỉ số của dòng sau giảm đi 1.