Установка вычислений окон

Существует два этапа установки динамических окон:

  • Создание вычисления, которое формирует функцию окна для атрибута в Дизайнере объектов
  • Создание окна для выполнения вычисления с помощью Дизайнера окон

Следующие две процедуры демонстрируют, как сделать поле Воздействие в окне инцидента обязательным, если заполнено поле Срочность. Подобные действия используются для других функций окон. Вычисления примера приведены далее.

Для создания вычисления:
  1. В Дизайнере объектов откройте объект для окна.
    В нашем примере это – Управление инцидентами\Инцидент.
  2. Создайте новый строковый атрибут Макс. длина со значением -1 для хранения вычисления.

Рекомендуется, чтобы имена атрибутов вычисления начинались с DynamicWindow, чтобы в дальнейшем их было проще найти в приложениях Дизайнеров.

  1. Установите для нового атрибута Тип вычисления значение Вычисление окна.
    Появится диалог изменения формулы.
  2. Отмените выбор параметра Автоматически обнаруживать зависимости.
    Мы установим зависимости самостоятельно.
  3. Создайте вычисление, которое устанавливает поле Value (Значение) в ":SetMandatory(атрибут, True)".
    В нашем примере, чтобы сделать атрибут Воздействие обязательным, введите следующее вычисление:
Копировать
import System
static def GetAttributeValue(Incident):
    Value = ":SetMandatory(_Impact, True);"
    return Value

Этот пример вычисления не является тем, которое вы будете использовать в повседневной работе. Хотя оно делает поле Воздействие обязательным, если заполнено поле Срочность, оно не управляет переустановкой поля, если значение поля Срочность вновь изменится. Данный пример приведен только в качестве демонстрации процедур настройки динамических окон. Далее представлено более подробное описание вычисления.

Строки начинаются с параметра Value, а параметр return имеет один отступ. Если вы скопируете примеры из этого документа, убедитесь в том, что вы сделаете правильные отступы во время вставки в редактор вычислений.

:SetMandatory – использует только имя атрибута. Не включайте имя объекта (например, не используйте Incident._Impact). Имейте в виду, что атрибут не является системным, поэтому его имя начинается с подчеркивания (например, _Impact).

Можно обновить несколько целевых атрибутов, разделив их точкой с запятой. Например:
Value = ":SetMandatory(attribute1,True);:SetMandatory(attribute2,False);"

  1. Переместите запускаемый атрибут, который выполняет вычисление, из дерева Атрибуты на панель Зависимости.
    В нашем примере переместите Срочность инцидента. Помните, что имя внутренней базы данных для атрибута – _IncidentUrgency – оно отображается на панели "Зависимости".
  2. Нажмите OK.
    Диалог изменения формулы будет закрыт.
  3. Нажмите .
    Изменения объекта будут сохранены.

Теперь после создания вычисления, которое делает поле обязательным, можно настроить окно для его использования.

Для настройки окна:
  1. В Диспетчере окон откройте нужное окно.
    В нашем примере – это окно "Инцидент".
  2. Добавьте созданный ранее атрибут вычисления в окно.

Атрибут должен быть добавлен в окно, но может быть скрыт с помощью свойства ShowOnWindow и его значения False. Мы рекомендуем во время создания и тестирования вычисления установить для свойства ShowOnWindow значение True.

  1. Выберите параметр, который нужно использовать для переключения вычисления.
    Это атрибут, который вы добавили в вычислении на панель Зависимости. В нашем примере – это Срочность.
  2. На панели Свойства для параметра установите для С вычислением при изменении значение True.
  3. Сохраните изменения в окне.

Когда пользователь выберет Срочность в окне "Инцидент", вычисление будет включено, и для вычисляемого атрибута будет установлено значение :SetMandatory(_Impact, True);. Это сделает поле Воздействие обязательным.