добрый день.
Нигде не смог найти пример на формирование значения поля на основании других полей.
Например для конфигурационной единицы. Автоматически генерировать Название КЕ по формуле Тип КЕ + Производитель КЕ (собственное поле) + Модель КЕ.
Как вариант повесить БП и после создания КЕ автоматически делать название, но лучше, чтобы пользователь видел результат еще до сохранения КЕ.
Подскажите в каком направлении идти.
Нравится
Это можно сделать с помощью зависимостей атрибутов. Более подробно посмотрите пример настройки вычисляемого поля на Академии.
Исходя из Ваших требований, вариант с БП не подойдет.
Это можно сделать с помощью зависимостей атрибутов. Более подробно посмотрите пример настройки вычисляемого поля на Академии.
Исходя из Ваших требований, вариант с БП не подойдет.
Что не работает. Сделал как описано в примере. Для начала решил сделать просто заполнение текстовым значением, потом переделать на заполнение значениями из справочника. Но даже так поле не заполняется. Что не так сделал?
define("ConfItemPage", [], function() {
return {
entitySchemaName: "ConfItem",
attributes: {
"EpmName": {
dataValueType: Terrasoft.DataValueType.TEXT,
dependencies: [
{
columns: ["TypeId", "ModelId", "EPMManufacturerId", "Name"],
methodName: "generateNewName"
}
]
}
},
methods: {
onEntityInitialized: function() {
this.callParent(arguments);
this.generateNewName();
},
generateNewName: function() {
var result = this.get("Name") + " Hello word!";
this.set("EpmName", result);
}
},
diff: /**SCHEMA_DIFF*/[
{
"operation": "insert",
"name": "EpmName",
"values": {
"layout": {
"colSpan": 12,
"rowSpan": 1,
"column": 0,
"row": 5,
"layoutName": "Header"
},
"bindTo": "EPMName",
"labelConfig": {
"caption": {
"bindTo": "Resources.Strings.EpmNameCaption"
}
},
"enabled": true
},
"parentName": "Header",
"propertyName": "items"
}
]/**SCHEMA_DIFF*/
};
});
Разобрался.
В разделе attributes указывается поле страницы Оно у меня записано как EmpName
А вот в методе в строке this.set("EPMName", result); надо писать уже имя поля куда сохраняем значение bindTo. У меня было записано как имя поля EpmName. А такого поля в схеме нет. Поменял на EPMName или все заработало.