Du är väldigt nära.
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
Jag sammanfogar det dolda objektet eftersom jag inte vill ha det i en egen kolumn. Bråkar med layouten.
Det dolda objektet finns också där på grund av hur kryssrutor fungerar. Kryssrutor skickar bara in sina värden för markerade objekt. Detta skulle innebära att array 10 har 3 värden. De andra arrayerna skulle fortfarande innehålla värdena för alla rader.
Det var därför jag lade till den dolda empno igen:så att vi kan matcha de markerade värdena med de andra raderna.
Vid inlämningsprocessen:
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;
Kör sida, aktivera felsökning, välj post 2, 4 och 6, skicka.
Felsökningsutgång:
Allt du behöver göra nu är att lägga din bearbetning i den slingan.