Las directivas de plantilla solo son compatibles con los complementos de componentes de plantilla, atributos específicos en plantillas de correo electrónico y las siguientes regiones: tarjetas, cuadrícula interactiva, informe clásico, búsqueda de aplicaciones y región de informe interactivo. Las directivas se pueden anidar, lo que significa que cualquiera de los textos de la plantilla puede contener otra directiva. Estas directivas se procesan como parte de sustituciones del lado del cliente o del servidor. Para determinar si un atributo admite directivas de plantilla, la Ayuda de Page Designer incluye el texto «Admite directivas de plantilla del lado del cliente» o «Admite directivas de plantilla del lado del servidor».
Directiva de Condición IF Utilizamos la directiva IF para mostrar texto condicionalmente en función de si un elemento o columna tiene un valor.
{if TAGS/}
    <ul class="a-tags">
    {loop "," TAGS/}
 	    <li class="a-tag">&APEX$ITEM.</li>
    {endloop/}
    </ul>
{endif/}
Si el valor de la columna TAGS no es nulo, la directiva IF toma un valor, en este caso el valor separado por comas TAGS y lo divide en una lista. El símbolo especial APEX$ITEM toma el valor del elemento de la lista actual. La siguiente tabla resume las directivas de condición disponibles.
Puede haber cero o más directivas elseif. La directiva elseif else son opcionales. Las directivas deben ir en el orden mostrado. Ejemplo Un informe de tarjetas contiene una columna denominada DESCRIPTION. El siguiente atributo de expresión HTML mostrará la descripción si no es nula (cadena vacía) y de lo contrario mostrará «Sin descripción».
{if DESCRIPTION/}&DESCRIPTION.{else/}No description.{endif/}
Directiva de Condición CASE Utilizamos la directiva CASE para mostrar texto según el valor de un elemento o columna.
{case NAME/}
{when STRING1/}
TEMPLATE_TEXT1
{when STRING2/}
TEMPLATE_TEXT2
{otherwise/}
TEMPLATE_TEXT
{endcase/}
NAME es un atributo de elemento, nombre de columna o componente de plantilla. El valor se compara con las cadenas después de cada directiva WHEN y, si son iguales, se genera el siguiente texto. Si ninguna directiva WHEN coincide, se emite el texto después de la directiva OTHERWISE, Een caso de que exista. El valor y cada cadena se eliminan los espacios iniciales y finales antes de la comparación. La comparación distingue entre mayúsculas y minúsculas. Ejemplo Este ejemplo que utiliza la tabla EMP y muestra la compensación de manera diferente según el JOB. Para los vendedores, muestra tanto el salario como la comisión. Para el presidente muestra “–” en lugar de salario y para todos los demás puestos muestra solo el salario.
{case JOB/}
{when SALESMAN/}
&SAL. (&COMM.)
{when PRESIDENT/}
--
{otherwise/}
&SAL.
{endcase/}

Directiva de BUCLE

Utilizamos la directiva LOOP para repetir el texto una vez para cada elemento en un elemento o valor de columna de valores múltiples (delimitados por caracteres).
{loop ["SEP"] NAME/}
TEMPLATE_TEXT
{endloop/}
NAME es un nombre de elemento o columna que tiene varios valores separados por el carácter dado por SEP. El separador predeterminado es » :«. Si SEP tiene más de un carácter, se trata como una expresión regular. El texto de la plantilla dentro del bucle puede utilizar estos símbolos de sustitución:
  • APEX$ITEM– Este es el valor del elemento actual en la lista.
  • APEX$I– Este es un índice basado en el elemento actual en la lista.
Ejemplo El siguiente ejemplo toma una columna llamada TAGS que contiene una lista de etiquetas separadas por comas (,) como «manzanas, cerezas, peras» y la convierte en una lista HTML a la que se le puede aplicar un estilo con CSS.
<ul class="tags">{loop "," TAGS/}
  <li class="tag-item">&APEX$ITEM.</li>
{endloop/}</ul>
Directivas WITH y APPLY Utilizamos la directiva WITH para asignar valores a los marcadores de posición para el componente de plantilla que se especifica en la directiva APPLY.
{with/}
PLACEHOLDER1:=VALUE1
PLACEHOLDER2:=VALUE2
{apply TEMPLATE_INTERNAL_NAME/}
Los requisitos al utilizar esta directiva incluyen:
  • Utilice la directiva WITH para asignar valores a marcadores de posición para el complemento Componente de plantilla que se especifica en la directiva APPLY.
  • Los complementos del componente de plantilla utilizan la representación del lado del servidor.
{with/}
FOO:=Foo
BAR:=Bar
{apply FOOBAR/}
En este ejemplo, FOOBAR es el nombre interno de un complemento de componente de plantilla instalado en la aplicación. Esta plantilla tiene dos marcadores de posición FOO BAR a los que se asignan valores. Ejemplo de Tarjetas con Directiva IF Para la siguiente demostración creamos una página en nuestra aplicación demo con un informe clásico y su formulario de gestión de datos de la tabla EBA_DEMO_CARD_EMP. (Esta tabla corresponde a la aplicación de ejemplo de Cards). Seleccionamos la región de Informe Clásico y en propiedades configuramos:
  • Identificación, Titulo: Empleados
  • Identificación, Tipo: Tarjetas
  • Apariencia, Opciones de Plantilla: hacemos clic en Utilizar Valores por Defecto de Plantilla Se abre la ventana modal de Opciones de Plantilla Común, Style: Style B Hacemos clic en el botón Aceptar
Hacemos clic en la ficha Atributos de la región de Tarjetas Empleados. Tarjeta, Columna de Clave Primaria 1: EMPNO. Título, Columna: ENAME. Subtitulo, Columna: JOB. En la sección Cuerpo:
  • Cuerpo, Formato Avanzado: Habilitar
  • Cuerpo, Expression HTML:
{if TAGS/}
<ul class="a-tags">
{loop "," TAGS/}
<li class="a-tag">&APEX$ITEM.</li>
{endloop/}
</ul>
{endif/}
En la sección Medio:
  • Medio, Origen: Columna BLOB
  • Medio, Columna BLOB: PROFILE_IMAGE(number)
  • Medio, Posición: Primero
  • Medio, Apariencia: Pantalla Panorámica
  • Medio, Tamaño: Ajustar
  • Medio, Descripción de Imagen: &ENAME. – &JOB.
En la sección Atributos BLOB.
  • Columna de Tipo MIME: MIMETYPE
  • Última Columna Actualizada: IMAGE_LAST_UPDATE
Haga clic en el botón Guardar. Además, necesitamos eliminar el botón Create. Finalmente ingresamos estilos CSS para personalizar los TAGS. En propiedades de la página en Estilos CSS En Línea, ingresamos las siguientes reglas CSS:
.a-tags {
    list-style: none;
}
.a-tag {
    background-color: #ebe7e7;
    color: #666;
    border-radius: 5px;
    padding: 5px;
    margin: 3px;
    display: inline;
}
A continuación, creamos una Acción de tipo Tarjeta Completa, para que al hacer clic en la tarjeta se habrá el formulario de carga de gestión de datos del empleado. Desde la Representación de Página, dentro de la región de tarjetas Empleado, hacemos clic en Acciones con el botón derecho del mouse y seleccionamos Crear Acción. En propiedades de la Acción, configuramos:
  • Identificación, Tipo: Tarjeta Completa
  • Enlace, Tipo: Redirigir a Página en esta Aplicación
  • Enlace, Destino: Hacemos clic en No se ha definido ningún enlace Se abre la ventana modal Creador de Enlaces: Destino Destino, Página, seleccione la pagina del formulario de Empleados en mi caso es 11
  • Definir elementos, Nombre: PX_EMPNO
  • Definir elementos, Valor: &EMPNO.
  • Hacemos clic en el botón Aceptar
Hacemos clic en el botón Guardar y Ejecutar.
De esta forma hemos creado una región de tipo Tarjetas que utiliza una directiva de plantilla. Hasta la próxima!