Creatio development guide
Это документация Creatio версии 7.8.0. Мы рекомендуем использовать новую версию документации.

Правило BINDPARAMETER. Как заблокировать поле на странице редактирования по определенному условию

Glossary Item Box

Описание кейса

Настроить поля на странице редактирования контакта таким образом, чтобы поле [Рабочий телефон] было доступным только при условии, что заполнено поле [Мобильный телефон].

Алгоритм реализации кейса

1. Создать замещающий клиентский модуль страницы редактирования контакта

Необходимо создать замещающий клиентский модуль, в котором в качестве родительского объекта указать схему ContactPageV2 (рис. 1). Процесс создания замещающей страницы описан в статье "Создание клиентской схемы".

Рис. 1. — Свойства замещающей страницы редактирования

2. Добавить правило с типом BINDPARAMETER для колонки [Phone]

В свойство rules модели представления страницы добавить необходимо добавить правило с типом BINDPARAMETER для колонки [Phone]. Свойству property правила нужно установить значение BusinessRuleModule.enums.Property.ENABLED.  В массив conditions добавить условие выполнения правила — значение колонки [MobilePhone] модели не должно быть равно пустым.

Полностью исходный код замещающей схемы:

// В список зависимостей модуля добавить модуль BusinessRuleModule.
define("ContactPageV2", ["BusinessRuleModule"], function(BusinessRuleModule) {
    return {
        // Название схемы объекта страницы редактирования.
        entitySchemaName: "Contact",
        // Правила модели представления страницы редактирования.
        rules: {
            // Набор правил для колонки [Phone] модели представления.
            "Phone": {
                // Правило зависимости доступности поля [Рабочий телефон] от значения в поле [Мобильный телефон].
                "BindParameterEnabledPhoneByMobile": {
                    // Тип правила BINDPARAMETER.
                    "ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER,
                    // Правило регулирует свойство ENABLED. 
                    "property": BusinessRuleModule.enums.Property.ENABLED,
                    // Массив условий, при выполнении которых отрабатывает правило. В данном 
                    // случае массив содержит одно условие для определения, установлено ли значение
                    // в колонке [MobilePhone]. 
                    "conditions": [{
                        // Выражение левой части условия.
                        "leftExpression": {
                            // Тип выражения ATTRIBUTE указывает на то, что в качестве выражения выступает 
                            // атрибут (колонка) модели представления. 
                            "type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
                            // Название колонки модели представления, значение которой сравнивается в выражении. 
                            "attribute": "MobilePhone"
                        },
                        // Тип операции сравнения — не равно. 
                        "comparisonType": Terrasoft.ComparisonType.NOT_EQUAL,
                        // Выражение правой части условия.
                        "rightExpression": {
                            // Тип выражения CONSTANT указывает на то, что в качестве значения выражения выступает 
                            // константное значение.
                            "type": BusinessRuleModule.enums.ValueType.CONSTANT,
                            // Значение, с которым сравнивается выражение левой части.
                            "value": ""
                        }
                    }]
                }
            }
        }
    };
});

После сохранения схемы и обновления веб-страницы системы на странице редактирования контакта поле [Рабочий телефон] будет недоступно для редактирования до тех пор, пока в поле [Мобильный телефон] не будут введены данные (рис. 2).

Рис. 2. —  Демонстрация результата выполнения кейса

 

© Terrasoft 2002-2016.

Был ли данный материал полезен?

Как можно улучшить эту статью?