Как можно отключать поля на странице редактирования в зависимости от значения других полей. Зависимости, насколько я понял прописываются в разделе attributes. А вот что писать в методах, непонятно.
Нравится
Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу.
Очень хороший пример: Поле результат в Активности - зависимость от статуса
Насколько я смог найти, там этот код выглядит так. Но есть момент, у элемента справочника статусов активности есть код (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 - работает сразу, без доработок.
Скриншот
В любом случае, все получилось. Всем кто помогал низкий поклон. Удачи!