Du bist ganz in der Nähe.
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
Ich verkette das versteckte Element, da ich es nicht in einer eigenen Spalte haben möchte. Bringt das Layout durcheinander.
Außerdem ist das versteckte Element da, weil Kontrollkästchen funktionieren. Kontrollkästchen übermitteln ihre Werte nur für aktivierte Elemente. Das würde bedeuten, dass Array 10 3 Werte hat. Die anderen Arrays würden immer noch die Werte für alle Zeilen enthalten.
Deshalb habe ich das versteckte Empno wieder hinzugefügt:damit wir die markierten Werte mit den anderen Zeilen abgleichen können.
Beim Übermittlungsprozess:
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;
Seite ausführen, Debug aktivieren, Datensätze 2, 4 und 6 auswählen, senden.
Debug-Ausgabe:
Alles, was Sie jetzt tun müssen, ist, Ihre Verarbeitung in diese Schleife zu stecken.