Cuando creamos una página de mantenimiento utilizando el ayudante de Apex, normalmente tenemos muy poco control sobre la funcionalidad de la misma. Muchas veces queremos permitir el ingreso o no de ciertos campos en la tabla, dependiendo del valor de algún campo, por ejemplo, cuando estamos hablando de procesar alguna solicitud, si por ejemplo esta es rechazada quisiéramos que se incluya el motivo por el cual se rechazó, campo que no debería ser incluido si es aceptada.

Para ocultar o mostrar campos en una forma de mantenimiento, se debe utilizar javascript; solo utilice el siguiente procedimiento:

En la cabecera de la página, se debe agregar el siguiente código:

<script>
function Show_On_Radio_Value(pThis, pThat, pValue){
   var rv = html_RadioValue(pThis);
   if (rv == pValue) {
      $x_ShowItemRow(pThat);
   } else {
      $x_HideItemRow(pThat);
   }
}
</script>

Luego, en el pie de página de la región que contiene los campos a mostrar/ocultar, se debe agregar lo siguiente:

<script language="JavaScript" type="text/javascript">
  Show_On_Radio_Value('P4_CAMPOX','P4_CAMPO1','S'); 
  Show_On_Radio_Value('P4_CAMPOX','P4_CAMPO2','S'); 
</script>

donde:

P4_CAMPOX es el campo tipo radio que controla de acuerdo a su valor si los campos se muestran o no.
P4_CAMPO1 y P4_CAMPO2 son los campos a mostrar u ocultar
S es el valor de P4_CAMPOX con el cual se muestran los campos anteriores.

En en campo P4_CAMPOX, en la propiedad «Atributos de Elemento de Pantalla HTML», se incluye lo siguiente:

onchange="Show_On_Radio_Value('P4_CAMPOX','P4_CAMPO1','S');
Show_On_Radio_Value('P4_CAMPOX','P4_CAMPO2','S');"

Los campos a mostrar/ocultar deben ser del tipo «Opcional Label» y en la sección de «Plantillas», se debe modificar la plantilla de Etiqueta «Opcional Label», en la propiedad Definición – Antes de Etiqueta, se debe cambiar el código por el siguiente:


en el código <span class=»t6OptionalLabel», se debe conservar el número existente después de  el cual corresponde a la plantilla utilizada, esto es, si está usando la plantilla 10, debe cambiar el 6 por el 10.

Y eso es todo.

Espero que les sea de utilidad. Como siempre, pueden ver un ejemplo funcionando en la siguiente dirección de OTN

Share This