getFullAddressFromVacancy: function (Id) {
var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchemaName: "AccountAddress"
});
esq.addColumn("Id");
esq.addColumn("Address", "Address");
esq.addColumn("AccountAddress.SxSubwayStation.Name", "MetroName");
esq.addColumn("AccountAddress.City.Name", "CityName");
esq.filters.add("VacancyCandidateFilter222", this.Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.EQUAL,
"Id", Id));
esq.getEntityCollection(function (response) {
if (response.success && response.collection.getCount() == 1) {
var entity = response.collection.getByIndex(0);
var addr = entity.get("Address");
var city = entity.get("CityName");
var metro = entity.get("MetroName");
var add = '';
if (city != undefined && city != 'Москва')
add += city + ', ';
if (metro != undefined)
add += metro + ', ';
if (addr != undefined)
add += addr;
this.log('Add = ' + add);
this.set("BpMetroAutoFill", add);
}
}, this);
}
В консоли хрома вижу что столбцы, кроме Address пишутся isNotFound.
Делал согласно https://academy.terrasoft.ru/documents/technic-sdk/7-8/poluchenie-rezul…
EntitySchemaQuery умеет довыгребать AccountAddress.SxSubwayStation.Name в таблице AccountAddress есть столбец SxSubwayStationId
Аналогично с City.
Что не так делаю, подскажите плиз?
Нравится
Прооосто ужас.
...rootSchemaName: "AccountAddress"... //запрос уже идёт в AccountAddress ...esq.addColumn("City.Name", "CityName");... // поэтому писать AccountAddress.City.Name не правильно ...esq.addColumn("SxSubwayStation.Name", "MetroName");.. //аналогично ...esq.filters.add("VacancyCandidateFilter222", this.Terrasoft.createColumnFilterWithParameter( this.Terrasoft.ComparisonType.EQUAL, "Id", Id)); esq.getEntityCollection()... //Есть метод esq.getEntity(id, callback, scope). Зачем зазря писать фильр по id, а потом фильтровать коллекцию?