combobox
Технические вопросы
7.x

Программно установить значение в ComboBox

Здравствуйте!
Добавил в деталь Платежные реквизиты, свойство "Основной", чтобы в Счете при выборе Контрагента по умолчанию подставлялся реквизит с признаком Основной.
Как получить я понял:

var esq = Ext.create('Terrasoft.EntitySchemaQuery', {
                                                rootSchemaName: "AccountBillingInfo"
                                        });
                                        esq.addColumn("Account");
                                        esq.addColumn("qrtIsMain");
                                        esq.addColumn("Name");
                                        esq.filters.add("AccId", Terrasoft.createColumnFilterWithParameter(
                                                Terrasoft.ComparisonType.EQUAL, "Account", this.get("qrtAccount").Id));
                                        esq.filters.add("IsMain", Terrasoft.createColumnFilterWithParameter(
                                                Terrasoft.ComparisonType.EQUAL, "qrtIsMain", true));
                                        esq.getEntityCollection(function(result) {
                                                if (result.success) {
                                                        Terrasoft.each(result.collection.getItems(), function(item) {
                                                                //self.set("qrtClientBilling", item.get("Id"));
                                                                //self.setValue("qrtClientBilling", item.get("Id"));
                                                        });
                                                }
                                        });

А как установить значение (то есть выбрать из существующих программно) ComboBox'а не пойму, подскажите, пожалуйста

Нравится

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

Для того чтобы установить новые значения для колонки записи (объекта) из клиентской части приложения необходимо использовать Terrasoft.InsertQuery. К сожалению, статьи по добавлению данных в конфигурационных схемах в документации разработчика пока нет.
Единственный пример, который может вам помочь, приведен в статье по созданию детали с выбором из справочника. Правда здесь используется пакетный запрос, аггрегирующий несколько запросов InsertQuery.
Стаья находится здесь:
https://academy.terrasoft.ru/documents/technic-sdk/7-8-0/sozdanie-detal…

Обратите внимание на этот кусок кода из примера

[javascript]
// Добавление выбранных продуктов.
addCallBack: function(args) {
// Экземпляр класса пакетного запроса BatchQuery.
var bq = this.Ext.create("Terrasoft.BatchQuery");
var OrderId = this.get("MasterRecordId");
// Коллекция выбранных в справочнике документов.
this.selectedRows = args.selectedRows.getItems();
// Коллекция, передаваемая в запрос.
this.selectedItems = [];
// Копирование необходимых данных.
this.selectedRows.forEach(function(item) {
item.OrderId = OrderId;
item.DocumentId = item.value;
bq.add(this.getDocumentInsertQuery(item));
this.selectedItems.push(item.value);
}, this);
// Выполнение пакетного запроса, если он не пустой.
if (bq.queries.length) {
this.showBodyMask.call(this);
bq.execute(this.onDocumentInsert, this);
}
},

//Возвращает запрос на добавление текущего объекта.
getDocumentInsertQuery: function(item) {
var insert = Ext.create("Terrasoft.InsertQuery", {
rootSchemaName: this.entitySchemaName
});
insert.setParameterValue("Order", item.OrderId, this.Terrasoft.DataValueType.GUID);
insert.setParameterValue("Document", item.DocumentId, this.Terrasoft.DataValueType.GUID);
return insert;
},
[/javascript]

Всем спасибо за помощь, всё получилось...

"Владимир Соколов" написал:

Здесь я давал решение:

http://www.community.terrasoft.ua/forum/topic/21807

... отдельное спасибо за пример

Показать все комментарии