Установка вычислений окон
Существует два этапа установки динамических окон:
- Создание вычисления, которое формирует функцию окна для атрибута в Дизайнере объектов
- Создание окна для выполнения вычисления с помощью Дизайнера окон
Следующие две процедуры демонстрируют, как сделать поле Воздействие в окне инцидента обязательным, если заполнено поле Срочность. Подобные действия используются для других функций окон. Вычисления примера приведены далее.
Для создания вычисления:
- В Дизайнере объектов откройте объект для окна.
В нашем примере это – Управление инцидентами\Инцидент. - Создайте новый строковый атрибут Макс. длина со значением -1 для хранения вычисления.
Рекомендуется, чтобы имена атрибутов вычисления начинались с DynamicWindow, чтобы в дальнейшем их было проще найти в приложениях Дизайнеров.
- Установите для нового атрибута Тип вычисления значение Вычисление окна.
Появится диалог изменения формулы. - Отмените выбор параметра Автоматически обнаруживать зависимости.
Мы установим зависимости самостоятельно. - Создайте вычисление, которое устанавливает поле 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);"
- Переместите запускаемый атрибут, который выполняет вычисление, из дерева Атрибуты на панель Зависимости.
В нашем примере переместите Срочность инцидента. Помните, что имя внутренней базы данных для атрибута – _IncidentUrgency – оно отображается на панели "Зависимости". - Нажмите OK.
Диалог изменения формулы будет закрыт. - Нажмите
.
Изменения объекта будут сохранены.
Теперь после создания вычисления, которое делает поле обязательным, можно настроить окно для его использования.
Для настройки окна:
- В Диспетчере окон откройте нужное окно.
В нашем примере – это окно "Инцидент". - Добавьте созданный ранее атрибут вычисления в окно.
Атрибут должен быть добавлен в окно, но может быть скрыт с помощью свойства ShowOnWindow и его значения False. Мы рекомендуем во время создания и тестирования вычисления установить для свойства ShowOnWindow значение True.
- Выберите параметр, который нужно использовать для переключения вычисления.
Это атрибут, который вы добавили в вычислении на панель Зависимости. В нашем примере – это Срочность. - На панели Свойства для параметра установите для С вычислением при изменении значение True.
- Сохраните изменения в окне.
Когда пользователь выберет Срочность в окне "Инцидент", вычисление будет включено, и для вычисляемого атрибута будет установлено значение :SetMandatory(_Impact, True);. Это сделает поле Воздействие обязательным.