Добрый день.
Нужна подсказка как реализовать поле на странице контакта, куда автоматически подтягивался бы номер телефона контрагента (по выбору контрагента, конечно). Поле должно быть виртуальное и только для просмотра.
Версия 7.6.0.840
Заранее спасибо за помощь
Нравится
Добрый день!!!
а какие у вас трудности? Работа с виртуальными полями ничем не отличается от работы полями получаемые их схем "Таблиц". Ничем не отличается Инициализация, Обработка, Валидация, Контроль и обработка событий. Вам нужен реальный пример, как решить вашу задачу. Или вам подсказать где в стандартном функционале, ваша задача уже решалась.
Ну вот так например
ассистент - тянем из связанной таблицы, по текущему контакту
на init я тоже вызывал метод getMainAssistant для заполнения поля
// diff { "operation": "insert", "name": "Assistant", "values": { "caption": "Assistant", "enabled": false }, "parentName": "Header", "propertyName": "items" }
// attributes "Assistant": { dataValueType: Terrasoft.DataValueType.TEXT, type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN, dependencies: [ { methodName: "getMainAssistant" } ] }
// methods getMainAssistant: function() { var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "UsrContactAssistents"}); esq.addColumn("UsrAssistant.Name", "UsrAssistantName"); esq.filters.add("UsrContactFilter", this.Terrasoft.createColumnFilterWithParameter( this.Terrasoft.ComparisonType.EQUAL, "UsrContact", this.get("Id"))); esq.getEntityCollection(function(response) { if (response && response.success) { if (response.collection.getCount() > 0) { var result = response.collection.getItems()[0]; this.set("MainAssistant", result.get("UsrAssistantName")); } } }, this); }
для связи с выбранным контрагентом например надо еще в добавить зависимость данного поля от контрагента
и attributes будет выглядеть так примерно
// attributes "Assistant": { dataValueType: Terrasoft.DataValueType.TEXT, type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN, dependencies: [ { columns: ["Account"], // это для зависимости от контрагента methodName: "getMainAssistant" } ] }