Monday, June 25, 2018

APEX_ITEM Parte 1 Guardando Check Boxes con APEX_APPLICATION.G_F01 en reportes + Oracle Apex

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

Link video tutorial



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.














Share:

0 comentarios:

Post a Comment

Subscribe to my Newsletter

Acerca de mi:

img

Ing. Angel O. Flores Torres, soy Ingeniero de Sistemas e Ingeniero de Aplicaciones Oracle Apex, he trabajado con Oracle Apex 5 y 5.1 desde el 2017, En los ultimos años he desarrollado habilidades en CSS, JavaScript, Jquery y PlSql , I specialize in Oracle APEX (Oracle Application Express )

Followers

Popular Posts