Предположим, на странице редактирования раздела у меня есть атрибут 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,
Да, только что сам проверил - колонки заполняются после выполнения данного метода.