あなたはとても近くにいます。
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
非表示のアイテムを独自の列にしたくないので、連結しています。レイアウトがめちゃくちゃ。
また、チェックボックスの仕組みのせいで隠しアイテムがそこにある。チェックボックスは、チェックされたアイテムの値のみを送信します。これは、配列 10 に 3 つの値があることを意味します。他の配列には、まだすべての行の値が含まれています。
これが、非表示の empno を再度追加した理由です。これにより、チェックされた値を他の行と一致させることができます。
送信プロセス:
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;
ページを実行し、デバッグを有効にし、レコード 2、4、および 6 を選択し、送信します。
デバッグ出力:
あとは、そのループに処理を入れるだけです。