Preparación de los cálculos de ventana

La preparación de ventanas dinámicas consta de dos pasos:

  • Crear un cálculo que devuelve una función de ventana en un atributo en el Diseñador de objetos.
  • Diseñar la ventana para que procese el cálculo en el Administrador de ventanas.

Los dos procedimientos siguientes muestran cómo hacer que el campo Impacto de la ventana Incidencia sea obligatorio al rellenar el campo Urgencia. La técnica es similar para las demás funciones de ventana. Más adelante se plantean otros ejemplos de cálculos.

Para crear el cálculo:
  1. Inicie el Diseñador de objetos y abra el objeto de la ventana.
    En el ejemplo, es Gestión de incidencias\Incidencia.
  2. Crear un nuevo atributo de cadena con Max. Longitud ajustada a -1 para almacenar el cálculo.

Se recomienda que los nombres de los atributos de su cálculo comiencen con Ventana dinámica para localizarlos fácilmente en los diseñadores.

  1. Se establece el Tipo de cálculo del nuevo atributo como Cálculo de ventana.
    Aparece el cuadro de diálogo Editar fórmula.
  2. Desmarque la casilla de verificación Detección automática de dependencias .
    Se configuran de forma manual.
  3. Se crea un cálculo que establece el Valor como ":SetMandatory(attribute, True)".
    En este ejemplo, escriba lo siguiente para hacer obligatorio el atributo Impacto:
Copiar
import System
static def GetAttributeValue(Incident):
    Value = ":SetMandatory(_Impact, True);"
    return Value

Este cálculo del ejemplo no se utilizaría en un sistema de producción. Aunque hace que Impacto sea obligatorio si se rellena el campo Urgencia, no prevé restablecer el campo en caso de que se cambie nuevamente el campo Urgencia. El ejemplo se aporta solo como parte de la demostración de cómo se preparan las ventanas dinámicas. El cálculo completo se detalla más adelante.

Las líneas del ejemplo que comienzan con Value y return están indentadas en un solo espacio. Si se copia algún ejemplo de este manual, debe asegurarse de mantener el indentado correcto al pegarlo en el Editor de cálculos.

:SetMandatory solo utiliza el nombre del atributo. No incluya el nombre del objeto. Por ejemplo, no utilice Incident._Impact. Es necesario recordar que si el atributo no es un atributo del sistema, su nombre debe comenzar con un guión de subrayado, por ejemplo, _Impact.

Es posible actualizar varios atributos objetivo separados por punto y coma. Por ejemplo:
Value = “:SetMandatory(attribute1,True);:SetMandatory(attribute2,False);”

  1. Arrastre el atributo que provoca la ejecución del cálculo desde el árbol Atributos hasta el panel Dependencias.
    Por ejemplo, arrastre Urgencia de la incidencia. Se debe tener en cuenta que en el panel Dependencias aparece el nombre interno del atributo en la base de datos: _IncidentUrgency.
  2. Haga clic en Aceptar.
    El cuadro de diálogo Editar fórmula se cierra.
  3. Haga clic en .
    Los cambios hechos en el objeto quedan guardados.

Una vez creado el cálculo que establece el campo como obligatorio, ya es posible preparar la ventana que lo utilizará.

Para preparar la ventana:
  1. En Administrador de ventanas, abra la ventana que desee.
    En el ejemplo es una ventana Incidencias.
  2. Agregue a la ventana el atributo creado anteriormente.

Dicho atributo debe agregarse a la ventana, pero se puede ocultar haciendo que la propiedad Mostrar en la ventana tenga el valor Falso. Se recomienda que Mostrar en la ventana tenga valor Verdadero durante el diseño y las pruebas del cálculo.

  1. Seleccione el control que desea utilizar para desencadenar el cálculo.
    Este atributo es el que se agregó al panel Dependencias en el cálculo. En este ejemplo es Urgencia.
  2. En el cuadro Propiedades del control, establezca Es calcular al cambiar como Verdadero.
  3. Guarde los cambios realizados en la ventana.

Cuando un usuario seleccione la Urgencia en la ventana Incidencia, el cálculo se desencadena y el valor del atributo calculado se establece al valor de :SetMandatory(_Impact, True);.Entonces, esto hace que el campo Impacto sea obligatorio.