En este tutorial vamos a trabajar con los apex_item, en el caso particular de los checkbox dentro de reportes.
Lo primero a tener en cuenta es que usaremos APEX_ITEM ,aqui les lejo el link de la documentacion oficial, con apex_item podemos crear diferentes controles, como texto, listas de seleccion, etc.
El metodo nativo para guardar la informacion de esto es usar APEX_APPLICATION.G_F01 donde el 01, nos referenciara al identificador del apex_item.
Quiero aclarar que APEX_APPLICATION.G_F01 solo tendra valores cuando hagamos submit a la pagina, es decir que si los queremos usar con acciones dinamicas no podras obtener el valor. Para esto voy a crear otros post adicionales, para mostrarles como podriamos guardar esta informacion sin hacer submit.
proximamente mantener el valor de check box en paginacion
proximamente guardado automatico de apex_items
Link demo
user: demo /pass: demo
Entonces, primero definimos una estructura basica del query agregando el apex_item.checkbox2
select empno
, apex_item.hidden(p_idx => 1
, p_value => empno) ||
apex_item.checkbox2(p_idx => 2
, p_value => empno) CheckBox
, ename
, deptno
, sal
, comm
, job
from emp
where deptno :P18_DEPARTAMENTOS
*Notamos que usamos un apex_item.hidden que se usara como indice principal.
* La clausula where es para no mostrar los registros que ya se hayan seleccionado para ese departamento.
Creamos un proceso que hara lo siguiente:
for i in 1..apex_application.g_f01.count loop
for j in 1..apex_application.g_f02.count loop
if apex_application.g_f01(i) = apex_application.g_f02(j) then
-- esta seleccionado
update emp
set deptno = :P18_DEPARTAMENTO
where empno = apex_application.g_f02(i);
end if;
end loop;
end loop;
*Dos loops, uno para tomar todos los indices, y el otro para tomar solo los seleccionados, luego se hace el update.
Tengo el mismo problema en mi aplicación. puedes ayudarme a ayudarme
LikeLike