VALORES DEVUELTOS EN UNA SELECCIÓN MÚLTIPLE EN APPLICATION EXPRESS (APEX)

Me encontré con la necesidad de trabajar con un ítem de selección múltiple en Apex, algo fácil con respecto a la configuración en la página pues no es más que seleccionar "Si" en la casilla de "Permitir Selección Múltiple" en la pestaña configuración del elemento en cuestión.









Ahora mi pregunta fue: Qué pasa con los datos de selección múltiple que escoge el usuario?. Pues bien, los datos seleccionados son devueltos como un String separados por dos puntos cada dato, algo como esto: opción1:opción2:opción3:opción4, entonces para poder usar estos datos es necesario convertirlos en un array y esto se logra usando la función APEX_UTIL.STRING_TO_TABLE y pasándole como parámetro el elemento de selección múltiple así: APEX_UTIL.STRING_TO_TABLE(:P12_ELEMENTO)
Esta función devuleve un array de tipo APEX_APPLICATION_GLOBAL.VC_ARR2 Hecho esto ya podemos utilizar los datos para cualquier operación como insert, update, delete, etc.

Ejemplo: Se tiene una página donde el usuario escoge un tipo de gas industrial en presentación de cilindros en donde cada cilindro tiene un número único de id.















Se necesita ingresar los datos en una tabla llamada tb_trazabilidad por lo que lo haré con un bloque de código PL/SQL que será una acción dinámica asociada al evento click en el botón "Adicionar".










Aquí escrito por si necesitan copiarlo

declare
--Declaramos la variable items
items APEX_APPLICATION_GLOBAL.VC_ARR2;
begin
--Obtenemos el array y lo guardamos en la variable items
items := APEX_UTIL.STRING_TO_TABLE(:P16_CILINDROS);
--Con un ciclo for se usan los datos para cualquier operación en la base de datos
for i in items.first..items.last
loop
insert into tb_trazabilidad(cilindro_id,trazabilidad_fecingreso,trazabilidad_notas,trazabilidad_docref,usuario_id)
values (items(i),:P16_FECHA,:P16_NOTAS,:P16_DOCREF,:P16_USUARIO);
end loop;
end;


Agradezco los comentarios y aportes constructivos.

Comentarios

Entradas populares