Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comprendre Oracle Apex_Application.G_Fnn et comment l'utiliser

Vous êtes très proche.

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

Je concatène l'élément caché car je ne le veux pas dans sa propre colonne. Gâchis avec la mise en page.
De plus, l'élément caché est là à cause du fonctionnement des cases à cocher. Les cases à cocher ne soumettent leurs valeurs que pour les éléments cochés. Cela signifierait que le tableau 10 a 3 valeurs. Les autres tableaux contiendraient toujours les valeurs de toutes les lignes.
C'est pourquoi j'ai ajouté à nouveau l'empno caché :afin que nous puissions faire correspondre les valeurs cochées aux autres lignes.

Lors du processus d'envoi :

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;

Exécutez la page, activez le débogage, sélectionnez les enregistrements 2, 4 et 6, soumettez.

Sortie de débogage :

Il ne vous reste plus qu'à mettre votre traitement dans cette boucle.