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

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

Нравится

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

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

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

Насколько я смог найти, там этот код выглядит так. Но есть момент, у элемента справочника статусов активности есть код (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 - работает сразу, без доработок.
Скриншот
В любом случае, все получилось. Всем кто помогал низкий поклон. Удачи!

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