Предположим, на странице редактирования раздела у меня есть атрибут Country, связанный со справочником стран.
Может возникнуть ситуация, в которой мне нужно принудительно установить значение данного справочника. Я поступаю следующим образом:
this.set("Country", {value: "a570b005-e8bb-df11-b00f-001d60e938c6", displayValue: "РОССИЯ"});В результате значение поля выбора принимает соответствующее значение.
Но у атрибута Country назначены дополнительные колонки кроме value и displayValue. Если в дальнейшем потребуется обратиться к этим колонкам, мы получим ошибку, потому что в реальности значением атрибута установлены только две переменных.
Понятно, что можно принудительно назначить атрибуту больше значений, но можно ли каким-то образом восстановить выбор значения из справочника по одному Guid ? Скажем, я знаю, что Guid нужной мне страны такой то. Я пишу что-то вроде this.set("Country, {value: такой-то}), и получаю доступ к любым строкам записи справочника?
Нравится
Добрый день.
Если я правильно понял, вам могут помочь две вещи:
1) Укажите в атрибутах колонки справочника, которые вам необходимы:
"Country": {
"lookupListConfig": {
"columns": ["Name", "CreatedOn", "CreatedBy"]
}
}2) Используйте метод loadLookupDisplayValue для установки справочных значений.
this.loadLookupDisplayValue("Country", valueId);
Добрый день!
Нет, предложенный вами способ не сработает.
Необходимо делать запрос в базу данных и вытаскивать атрибуты объекта.
Пример запроса:
var esqContract = Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchemaName: "Contract"
});
esqContract.addColumn('CreatedOn');
esqContract.addColumn('SignedOn');
esqContract.getEntity(contractId, function(responseContract)
{
var createdOn = responseContract.entity.get('CreatedOn');
}, scope);
Добрый день.
Если я правильно понял, вам могут помочь две вещи:
1) Укажите в атрибутах колонки справочника, которые вам необходимы:
"Country": {
"lookupListConfig": {
"columns": ["Name", "CreatedOn", "CreatedBy"]
}
}2) Используйте метод loadLookupDisplayValue для установки справочных значений.
this.loadLookupDisplayValue("Country", valueId);
Сизов Андрей Андреевич,
доброе утро! Этого метода:
this.loadLookupDisplayValue("Country", valueId);будет достаточно, чтобы заполнить все выбранные для атрибута колонки (в вашем случае "Name", "CreatedOn", "CreatedBy"), или он позволяет получить только displayValue по valueId?
Developer76,
Да, только что сам проверил - колонки заполняются после выполнения данного метода.