Du er meget tæt på.
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
Jeg sammenkæder det skjulte element, da jeg ikke vil have det i sin egen kolonne. Roder med layoutet.
Det skjulte element er der også på grund af, hvordan afkrydsningsfelter fungerer. Afkrydsningsfelter indsender kun deres værdier for afkrydsede varer. Dette ville betyde, at array 10 har 3 værdier. De andre arrays ville stadig indeholde værdierne for alle rækker.
Det er derfor, jeg tilføjede den skjulte empno igen:så vi kan matche de kontrollerede værdier med de andre rækker.
Ved indsendelsesprocessen:
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 side, aktiver fejlretning, vælg post 2, 4 og 6, send.
Debug output:
Alt du nu skal gøre er at sætte din behandling i den løkke.