Bạn đang ở rất gần.
select apex_item.checkbox2(10, empno) select_me,
apex_item.text(20, empno) empno,
apex_item.text(30, ename)||apex_item.hidden(50, empno) ename
from emp
Tôi đang nối mục ẩn vì tôi không muốn nó nằm trong cột của chính nó. Lộn xộn với bố cục.
Ngoài ra, mục ẩn ở đó là do cách các hộp kiểm hoạt động. Hộp kiểm chỉ gửi giá trị của chúng cho các mục đã chọn. Điều này có nghĩa là mảng 10 có 3 giá trị. Các mảng khác sẽ vẫn chứa các giá trị cho tất cả các hàng.
Đây là lý do tại sao tôi lại thêm empno ẩn:để chúng tôi có thể khớp các giá trị đã kiểm tra với các hàng khác.
Trong quá trình gửi:
DECLARE
v_empno emp.empno%TYPE;
v_ename emp.ename%TYPE;
BEGIN
--f10: checkbox
--f20: empno
--f30: ename
--f50: empno again
for i in 1..apex_application.g_f10.count
loop
for j in 1..apex_application.g_f50.count loop
if apex_application.g_f10(i) = apex_application.g_f50(j)
then
-- access values for the selected rows in the other arrays
v_empno := apex_application.g_f20(j);
v_ename := apex_application.g_f30(j);
apex_debug_message.log_message('Employee: '||v_empno||' - '||v_ename);
end if;
end loop;
end loop;
END;
Chạy trang, bật gỡ lỗi, chọn bản ghi 2, 4 và 6, gửi.
Đầu ra gỡ lỗi:
Tất cả những gì bạn cần làm bây giờ là đặt quá trình xử lý của bạn vào vòng lặp đó.