Добрый день.
Нужна подсказка как реализовать поле на странице контакта, куда автоматически подтягивался бы номер телефона контрагента (по выбору контрагента, конечно). Поле должно быть виртуальное и только для просмотра.
Версия 7.6.0.840
Заранее спасибо за помощь
Нравится
Добрый день!!!
а какие у вас трудности? Работа с виртуальными полями ничем не отличается от работы полями получаемые их схем "Таблиц". Ничем не отличается Инициализация, Обработка, Валидация, Контроль и обработка событий. Вам нужен реальный пример, как решить вашу задачу. Или вам подсказать где в стандартном функционале, ваша задача уже решалась.
Ну вот так например
ассистент - тянем из связанной таблицы, по текущему контакту
на init я тоже вызывал метод getMainAssistant для заполнения поля
[javascript]
// diff
{
"operation": "insert",
"name": "Assistant",
"values": {
"caption": "Assistant",
"enabled": false
},
"parentName": "Header",
"propertyName": "items"
}
[/javascript]
[javascript]
// attributes
"Assistant": {
dataValueType: Terrasoft.DataValueType.TEXT,
type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
dependencies: [
{
methodName: "getMainAssistant"
}
]
}
[/javascript]
[javascript]
// 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);
}
[/javascript]
для связи с выбранным контрагентом например надо еще в добавить зависимость данного поля от контрагента
и attributes будет выглядеть так примерно
[javascript]
// attributes
"Assistant": {
dataValueType: Terrasoft.DataValueType.TEXT,
type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
dependencies: [
{
columns: ["Account"], // это для зависимости от контрагента
methodName: "getMainAssistant"
}
]
}
[/javascript]