Вопрос

Подскажите,можно ли виртуальное поле типа LOOKUP сделать выпадающим списком?

Если меняю на тип ENUM, то поле визуально выглядит списком, но данные при нажатии на стрелочку не выпадают.

У меня такой же вопрос

3 комментария
Лучший ответ

Обычно хватает добавить в diff "contentType": Terrasoft.ContentType.ENUM

{
	"operation": "insert",
	"name": "AccountType",
	"parentName": "ProfileContainer",
	"propertyName": "items",
	"values": {
		"bindTo": "Type",
		"layout": {
			"column": 0,
			"row": 2,
			"colSpan": 24
		},
		"contentType": Terrasoft.ContentType.ENUM
	}
},

 

А если не менять данные есть?

Штатный способ зайти в дизайнер страницы (мастер) и в свойствах поля отметить галочку, что примерно тоже что вы сделали вручную.....

Обычно хватает добавить в diff "contentType": Terrasoft.ContentType.ENUM

{
	"operation": "insert",
	"name": "AccountType",
	"parentName": "ProfileContainer",
	"propertyName": "items",
	"values": {
		"bindTo": "Type",
		"layout": {
			"column": 0,
			"row": 2,
			"colSpan": 24
		},
		"contentType": Terrasoft.ContentType.ENUM
	}
},

 

Спасибо. Все получилось.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день.
Нужна подсказка как реализовать поле на странице контакта, куда автоматически подтягивался бы номер телефона контрагента (по выбору контрагента, конечно). Поле должно быть виртуальное и только для просмотра.
Версия 7.6.0.840
Заранее спасибо за помощь

У меня такой же вопрос

4 комментария

Добрый день!!!

а какие у вас трудности? Работа с виртуальными полями ничем не отличается от работы полями получаемые их схем "Таблиц". Ничем не отличается Инициализация, Обработка, Валидация, Контроль и обработка событий. Вам нужен реальный пример, как решить вашу задачу. Или вам подсказать где в стандартном функционале, ваша задача уже решалась.

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

Коллеги, никто не может помочь в этом вопросе?

Ну вот так например
ассистент - тянем из связанной таблицы, по текущему контакту
на 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"
}
]
}
Войдите или зарегистрируйтесь, чтобы комментировать