Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Grundlegendes zu Oracle Apex_Application.G_Fnn und dessen Verwendung

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.