martes, 21 de julio de 2015

Como Agregar Default_Where en un Bloque de Oracle Forms

En Oracle Forms puede crear un Bloque de Datos que la fuente de datos es una tabla o vista de su Base de Datos. Si bien puede colocar un filtro de que datos solo necesita trabajar hay ocasiones en que dependiendo de como se navega en el formulario y en sus bloques solo se requiera ciertos datos y por lo tanto diversos tipos de filtros.



La clausula Default_Where básicamente es agregar un filtro o condición desde el comando Set_Block_Property que le permite seleccionar las columnas de un conjunto de resultados.  Por ejemplo si desea limitar los resultados por un valor de columna específico o un registro en particular, que normalmente se debería añadir en la cláusula WHERE del bloque de datos. 

Sin embargo, desde su bloque solo se basa en una sola cláusula WHERE ,para modificarlo debe utilizar la opción DEFAULT_WHERE. Este puede ser usado en un botón cuando se dispare el trigger WHEN-BUTTON-PRESSED. Para ello puede utilizar el siguiente código:

IF P_REVIEW ='Y'  THEN

SET_BLOCK_PROPERTY('XX_DETAIL',DEFAULT_WHERE, 'REVIEW='''||P_REVIEW||'''');
      
ELSE

SET_BLOCK_PROPERTY('XX_DETAIL',DEFAULT_WHERE,'ID='||:XX_HEAD.HEAD_ID);
     
END IF;
  
EXECUTE_QUERY;

En este caso se ha utilizado de tal forma que tenemos dos bloques XX_HEAD XX_DETAIL. Si del bloque XX_HEAD marcamos la casilla REVIEW este debe filtrar solo la información de revisados en el bloque XX_DETAIL, sino esta marcado significa que debe traer todas las líneas por id del bloque XX_HEAD.

No hay comentarios:

Publicar un comentario