Có Mục đưa đón . Ở phía bên trái, bạn sẽ hiển thị danh sách tất cả nhân viên. Các nút mục cho phép bạn di chuyển tất cả (hoặc chỉ một số trong số chúng) sang phía bên phải của mục. Sau khi bạn gửi trang, danh sách ID nhân viên được lưu trữ trong một cột bảng dưới dạng các giá trị được phân tách bằng dấu hai chấm, ví dụ:
6547:8879:5587:9987
Đây là một cách đơn giản để làm điều đó. Tuy nhiên, một khi bạn phải thực sự làm một cái gì đó với các giá trị đó, bạn phải chia chúng thành các hàng. Không phải là một vấn đề, mặc dù. Đây là một truy vấn:
SQL> with emps (shuttle_item) as
2 (select '6547:8879:5587:9987' from dual)
3 select regexp_substr(shuttle_item, '[^:]+', 1, level) one_item
4 from emps
5 connect by level <= regexp_count(shuttle_item, ':') + 1;
ONE_ITEM
---------------------------------------------------------------------
6547
8879
5587
9987
SQL>
Hoặc, bạn có thể tạo một biểu mẫu dạng bảng cũng hiển thị tất cả nhân viên và có các hộp kiểm ở đầu mỗi dòng. Sau đó, bạn sẽ tạo một quy trình - trong một vòng lặp - lưu trữ các giá trị đã chọn vào một bảng tạm thời bạn đã đề cập. Ví dụ:
-- F01 = row selector. If you check 1st and 3rd row, f01.count = 2 (2 rows checked)
-- f01(1) = 1 (row #1), f01(2) = 3 (row #3)
-- F02 = EMP_ID. f02(1) = EMP_ID that belongs to employee in 1st row,
-- f02(3) = EMP_ID that belongs to emplyee in 3rd row
declare
l_id number;
begin
for j in 1 .. apex_application.g_f01.count
loop
l_id := apex_application.g_f02(apex_application.g_f01(j));
insert into temp_table (emp_id) values (l_id);
end loop;
end;