Обязатлеьное поле в зависимости от значения другого поля, мобильное приложение
Есть правило видимости, делать поле видимым в зависимости от значения другого поля.
Все работает
Terrasoft.sdk.Model.addBusinessRule("Account", {
ruleType: Terrasoft.RuleTypes.Visibility,
conditionalColumns:
[
{name: "UsrStage", value: "a5d0ceac-3ef4-45e0-be25-af3a1190f6f9"}
],
triggeredByColumns: ["UsrStage"],
dependentColumnNames: ["UsrInstalationDate"]
}
);
Как сделать такое же правило, но для признака "обязательно для заполнения".
То есть это же самое поле, при таких же условиях должно становиться еще и обязательным для заполнения.
Проблема в том, что для мобильной версии не совсем понятно как настраивать правила. В документации описания и примеры не очень понятные
Нравится
Requirement правило не поможет в данном случае. Нужно использовать Custom. Что-то вроде этого.
Terrasoft.sdk.Model.addBusinessRule("UsrMyModel", { name: "RuleName", ruleType: Terrasoft.RuleTypes.Custom, triggeredByColumns: [/*Список колонок, которые активируют правило*/], events: [Terrasoft.BusinessRuleEvents.Load, Terrasoft.BusinessRuleEvents.ValueChanged, Terrasoft.BusinessRuleEvents.Save], executeFn: function(record, rule, column, customData, callbackConfig) { var hasError = false; //булевая переменная, указывающая корректность поля. var errorMessage = "Необходимо указать значение."; // Сообщение об ошибке. //Выполняем нужный код, определяющий наличие ошибки record.changeProperty("UsrMyColumn", { isValid: { value: hasError, message: errorMessage } }); Ext.callback(callbackConfig.success, callbackConfig.scope); } });
Обязательность задаётся как Terrasoft.RuleTypes.Requirement. В конфигурации есть много примеров использования. Например, в MobileContactAddressModelConfig так:
Terrasoft.sdk.Model.addBusinessRule("ContactAddress", { name: "ContactAddressRequirementRule", ruleType: Terrasoft.RuleTypes.Requirement, requireType: Terrasoft.RequirementTypes.OneOf, triggeredByColumns: ["Address", "City", "Country"], position: 3 });
Поясните, что сделает это правило? Все колонки указанные в triggeredByColumns буду обязательные? Мне примерно также нужно, только в зависимости от значения определенного поля.
Requirement правило не поможет в данном случае. Нужно использовать Custom. Что-то вроде этого.
Terrasoft.sdk.Model.addBusinessRule("UsrMyModel", { name: "RuleName", ruleType: Terrasoft.RuleTypes.Custom, triggeredByColumns: [/*Список колонок, которые активируют правило*/], events: [Terrasoft.BusinessRuleEvents.Load, Terrasoft.BusinessRuleEvents.ValueChanged, Terrasoft.BusinessRuleEvents.Save], executeFn: function(record, rule, column, customData, callbackConfig) { var hasError = false; //булевая переменная, указывающая корректность поля. var errorMessage = "Необходимо указать значение."; // Сообщение об ошибке. //Выполняем нужный код, определяющий наличие ошибки record.changeProperty("UsrMyColumn", { isValid: { value: hasError, message: errorMessage } }); Ext.callback(callbackConfig.success, callbackConfig.scope); } });
Бершеда Д. Н.,
Спасибо за ответ.
Можно, пожалуйста, на простом примере объяснить?