Технические вопросы
7.x

Только чтение в зависимости

Как можно отключать поля на странице редактирования в зависимости от значения других полей. Зависимости, насколько я понял прописываются в разделе attributes. А вот что писать в методах, непонятно.

Нравится

11 комментариев

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

Очень хороший пример: Поле результат в Активности - зависимость от статуса

Насколько я смог найти, там этот код выглядит так. Но есть момент, у элемента справочника статусов активности есть код (Finish), у моего справочника я не могу найти код элемента. Или я не то смотрю?
[javascript]
"Result": {
"BindParameterEnabledResultToStatus": {
"ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER,
"property": BusinessRuleModule.enums.Property.ENABLED,
"conditions": [
{
"leftExpression": {
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
"attribute": "Status",
"attributePath": "Finish"
},
"comparisonType": Terrasoft.ComparisonType.EQUAL,
"rightExpression": {
"type": BusinessRuleModule.enums.ValueType.CONSTANT,
"value": true
}
}
]
},

[/javascript]

Для подобных задач наиболее подходящим (есть и исключения конечно) является использование правил rules:

Вот пример одного из правил на странице:

[javascript]
rules: {
"Region": {
"EnabledRegion": {
ruleType: BusinessRuleModule.enums.RuleType.BINDPARAMETER,
property: BusinessRuleModule.enums.Property.ENABLED,
conditions: [{
leftExpression: {
type: BusinessRuleModule.enums.ValueType.ATTRIBUTE,
attribute: "Status"
},
comparisonType: Terrasoft.ComparisonType.EQUAL,
rightExpression: {
type: BusinessRuleModule.enums.ValueType.CONSTANT,
value: ConfigurationConstants.Lead.Status.New
}
}]
}
}
}
[/javascript]

Который говорит о том что мы ходим управлять доступностью такого атрибута как "Region" в зависимости от другого атрибута "Status".
При этом "Region" будет доступно для редактирования, если "Status" = ConfigurationConstants.Lead.Status.New (или "bd3511f8-f36b-1410-4493-1c6f65e16a07")

Я примерно это и имел в виду. Код указаный мною выше, именно из раздела Rules. Мой вопрос был где в справочнике указывается код элемента. В вашем случае это "ConfigurationConstants.Lead.Status.New". В моем случае есть справочник видов операций с элементами "РКО" и "ПКО" в зависимости от того, какой элемент выбран, нужно включать или отключать поле. Но я не могу понять, что указывать после "status."

Необходимо указывать Id записи справочника.

В моем примере это по сути
[sql]
SELECT Id
FROM LeadStatus
WHERE (Name = 'Новый')
[/sql]

bd3511f8-f36b-1410-4493-1c6f65e16a07

Попытался создать SQL сценарий, вписал туда код, но как посмотреть результат запроса, не знаю. Помогите плз.

Здравствуйте, Владимир!

В SQL-сценариях нет возможности отобразить результат выполнения запросов типа SELECT.

Есть возможность вывести текст ошибки, в случае, если запрос вида UPDATE, DELETE или INSERT завершился неудачно. Для этого в реестре SQL-сценариев необходимо отобразить колонку "Текст последней ошибки".

Если Вы используете локально развернутое приложение (On-Site), то Вам необходимо выполнить запрос из среды MSSQL Management Studio.

Если речь идет об On-Demand, то можно также получить выборку из консоли браузера, используя EntitySchemaQuery:

[javascript]
var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "LeadStatus" }); esq.addColumn("Id"); esq.addColumn("Name"); esq.getEntityCollection(function(result) { if (result.success) {result.collection.each(function(item) {console.log(item.get("Id")+ ' - ' + item.get("Name"));});}}, this);
[/javascript]

[URL=http://i69.fastpic.ru/big/2015/0516/78/0643139580876e480fb3da075bdee978…]

Нашел рабочую страничку для запуска запросов в OnDemand http://www.community.terrasoft.ru/blogs/11961

Владимир, да, так тоже можно, но это требует дополнительных доработок.

Метод выше работает из коробки.

Там ниже готовый код для 7.5 - работает сразу, без доработок.
Скриншот
В любом случае, все получилось. Всем кто помогал низкий поклон. Удачи!

Показать все комментарии