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

Oracle Apex :approche étape par étape pour créer des boutons radio dans un rapport interactif

Vous pouvez soit utiliser un lien de colonne pour sélectionner l'enregistrement et naviguer vers une autre page, soit un bouton radio et un bouton/lien de page pour le faire. Je vais démontrer les deux à l'aide d'un simple rapport sur la table DEPT.

Méthode 1 :bouton radio

Pour le bouton radio, nous pouvons ajouter une colonne supplémentaire au rapport en utilisant le apex_item.radiogroup fonction pour créer un bouton radio dont la valeur est le DEPTNO :

Par défaut, le code HTML du groupe radio sera échappé pour des raisons de sécurité, ce qui n'est pas ce que vous voulez mais illustre assez bien ce qu'il fait :

Nous pouvons résoudre ce problème en modifiant la propriété de la colonne en "Colonne de rapport standard" :

Maintenant, nous voyons :

Cliquer sur le bouton radio d'une ligne la sélectionne et désélectionne les boutons des autres lignes.

Pour naviguer vers une autre page avec la ligne sélectionnée, nous avons besoin d'un bouton pour soumettre la page avec une demande spéciale :

Une fois cliqué, ce bouton soumettra la page avec une valeur de requête de "SELECT" (le nom du bouton que j'ai choisi). Nous pouvons donc écrire un processus de page de soumission pour qu'il se déclenche lorsque la demande est "SELECT", découvrez quel bouton radio a été sélectionné (le cas échéant) et enregistrez le DEPTNO sélectionné dans un élément caché appelé, par exemple, P34_DEPTNO. Nous découvrons quel bouton en regardant le tableau APEX apex_application.g_f01 que nous avons choisi en passant 1 comme premier paramètre de apex_item.radiogroup :

if apex_application.g_f01.count > 0 then
   -- Array has been populated i.e. user chose a value
   :p34_deptno := apex_application.g_f01(1);
else 
   -- Array has not been populated i.e. user did not choose a value
   :p34_deptno := null;
end if;

Ensuite, nous pouvons définir une branche qui navigue vers la nouvelle page si (a) request ='SELECT' et (b) P34_DEPTNO n'est pas nul.

Et c'est tout. Beaucoup de travail, mais si c'est l'exigence qui le fera.

Méthode 2 :lien de colonne

La manière la plus simple est de se passer des boutons radio et de transformer simplement l'une des colonnes du rapport en lien :

Cela transforme la colonne (j'ai choisi DNAME) en un lien qui navigue vers la nouvelle page en prenant avec elle la valeur DEPTNO sélectionnée :

C'est ça! Aucun élément caché, aucun bouton, aucun traitement de page, aucune branche...