sql >> Base de Datos >  >> RDS >> Oracle

Oracle Apex:enfoque paso a paso para crear botones de opción en un informe interactivo

Puede usar un enlace de columna para seleccionar el registro y navegar a otra página, o un botón de opción y un botón/enlace de página para hacerlo. Demostraré ambos usando un informe simple en la tabla DEPT.

Método 1:botón de radio

Para el botón de radio, podemos agregar una columna adicional al informe usando el apex_item.radiogroup función para crear un botón de radio cuyo valor es DEPTNO:

De forma predeterminada, el HTML del grupo de radio se escapará por razones de seguridad, que no es lo que desea, pero ilustra muy bien lo que está haciendo:

Podemos solucionarlo cambiando la propiedad de la columna a "Columna de informe estándar":

Ahora vemos:

Al hacer clic en el botón de opción de cualquier fila, se selecciona y se anula la selección de los botones de otras filas.

Para navegar a otra página con la fila seleccionada, necesitamos un botón para enviar la página con una solicitud especial:

Al hacer clic, ese botón enviará la página con un valor de Solicitud de "SELECCIONAR" (el nombre del botón que elegí). Por lo tanto, podemos escribir un proceso de página de envío para que se active cuando la solicitud sea "SELECCIONAR", averiguar qué botón de opción se seleccionó (si corresponde) y guardar el DEPTNO seleccionado en un elemento oculto llamado P34_DEPTNO. Descubrimos qué botón mirando la matriz APEX apex_application.g_f01 que elegimos pasando 1 como primer parámetro para 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;

Entonces podemos definir una rama que navegue a la nueva página si (a) request ='SELECT' y (b) P34_DEPTNO no es nulo.

Y eso es. Bastante trabajo, pero si ese es el requisito, será suficiente.

Método 2:enlace de columna

La forma más sencilla es prescindir de los botones de radio y convertir una de las columnas del informe en un enlace:

Esto convierte la columna (elegí DNAME) en un enlace que navega a la nueva página y lleva consigo el valor DEPTNO seleccionado:

¡Eso es todo! Sin elemento oculto, sin botón, sin proceso de página, sin rama...