добрый день.
Нигде не смог найти пример на формирование значения поля на основании других полей.
Например для конфигурационной единицы. Автоматически генерировать Название КЕ по формуле Тип КЕ + Производитель КЕ (собственное поле) + Модель КЕ.
Как вариант повесить БП и после создания КЕ автоматически делать название, но лучше, чтобы пользователь видел результат еще до сохранения КЕ.
Подскажите в каком направлении идти.
Нравится
Это можно сделать с помощью зависимостей атрибутов. Более подробно посмотрите пример настройки вычисляемого поля на Академии.
Исходя из Ваших требований, вариант с БП не подойдет.
Это можно сделать с помощью зависимостей атрибутов. Более подробно посмотрите пример настройки вычисляемого поля на Академии.
Исходя из Ваших требований, вариант с БП не подойдет.
Что не работает. Сделал как описано в примере. Для начала решил сделать просто заполнение текстовым значением, потом переделать на заполнение значениями из справочника. Но даже так поле не заполняется. Что не так сделал?
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 или все заработало.