Как можно отключать поля на странице редактирования в зависимости от значения других полей. Зависимости, насколько я понял прописываются в разделе attributes. А вот что писать в методах, непонятно.
Нравится
Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу.
Очень хороший пример: Поле результат в Активности - зависимость от статуса
Насколько я смог найти, там этот код выглядит так. Но есть момент, у элемента справочника статусов активности есть код (Finish), у моего справочника я не могу найти код элемента. Или я не то смотрю?
"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 } } ] },
Для подобных задач наиболее подходящим (есть и исключения конечно) является использование правил rules:
Вот пример одного из правил на странице:
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 } }] } } }
Который говорит о том что мы ходим управлять доступностью такого атрибута как "Region" в зависимости от другого атрибута "Status".
При этом "Region" будет доступно для редактирования, если "Status" = ConfigurationConstants.Lead.Status.New (или "bd3511f8-f36b-1410-4493-1c6f65e16a07")
Я примерно это и имел в виду. Код указаный мною выше, именно из раздела Rules. Мой вопрос был где в справочнике указывается код элемента. В вашем случае это "ConfigurationConstants.Lead.Status.New". В моем случае есть справочник видов операций с элементами "РКО" и "ПКО" в зависимости от того, какой элемент выбран, нужно включать или отключать поле. Но я не могу понять, что указывать после "status."
Необходимо указывать Id записи справочника.
В моем примере это по сути
SELECT Id FROM LeadStatus WHERE (Name = 'Новый')
bd3511f8-f36b-1410-4493-1c6f65e16a07
Попытался создать SQL сценарий, вписал туда код, но как посмотреть результат запроса, не знаю. Помогите плз.
Здравствуйте, Владимир!
В SQL-сценариях нет возможности отобразить результат выполнения запросов типа SELECT.
Есть возможность вывести текст ошибки, в случае, если запрос вида UPDATE, DELETE или INSERT завершился неудачно. Для этого в реестре SQL-сценариев необходимо отобразить колонку "Текст последней ошибки".
Если Вы используете локально развернутое приложение (On-Site), то Вам необходимо выполнить запрос из среды MSSQL Management Studio.
Если речь идет об On-Demand, то можно также получить выборку из консоли браузера, используя EntitySchemaQuery:
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);
[URL=http://i69.fastpic.ru/big/2015/0516/78/0643139580876e480fb3da075bdee978…]
Нашел рабочую страничку для запуска запросов в OnDemand http://www.community.terrasoft.ru/blogs/11961
Владимир, да, так тоже можно, но это требует дополнительных доработок.
Метод выше работает из коробки.
Там ниже готовый код для 7.5 - работает сразу, без доработок.
Скриншот
В любом случае, все получилось. Всем кто помогал низкий поклон. Удачи!