attributes: {
//коллекция записей объектов, используется для фильтров на детали объекты
"collection": {
"dataValueType": this.Terrasoft.DataValueType.COLLECTION,
"type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
"value": []
},
"qrtSchema20721e4bDetail473909b0": {
"schemaName": "qrtSchema20721e4bDetail",
"entitySchemaName": "qrtObject",
"filterMethod": "setObjectFilers"
}
onEntityInitialized: function(){
this.callParent(arguments);
this.console.log("onEntityInitialized");
this.getProjectCollections();
},
setObjectFilers: function(){
debugger;
var DEFAULT = "00000000-0000-0000-0000-000000000000";
this.console.log("setObjectFilers");
var collection = this.get("collection");
this.console.log("Массив: "+collection);
var filterGroup = Ext.create("Terrasoft.FilterGroup");
if(collection.length !== 0){
filterGroup.add("IdFilter",Terrasoft.createColumnInFilterWithParameters("Id", collection));
} else {
filterGroup.add("IdFilter",
Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.EQUAL, "Id", DEFAULT));
}
return filterGroup;
},
/**
* получает коллекцию объектов по лидам и продажам
*/
getProjectCollections:function(){
var mas = [];
Terrasoft.chain(
function(next){
var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchemaName: "Opportunity"
});
this.console.log("obj");
esq.addColumn("qrtObject.Id");
// Создание экземпляра первого фильтра.
var esqFirstFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "qrtProject", this.get("Id"));
esq.filters.add("esqFirstFilter", esqFirstFilter);
esq.getEntityCollection(function (result) {
if (result.success) {
result.collection.each(function (item) {
this.console.log(item.get("qrtObject.Id"));
mas.push(item.get("qrtObject.Id"));
});
}
next();
}, this);
},
function(next){
this.console.log(mas);
self.set("collection", mas);
this.updateDetail({detail: "qrtSchema20721e4bDetail473909b0", realoadAll: true});
this.setObjectFilers();
}, this
)
}Код приведенный выше отрабатывает у меня нормально, но некоторые пользователи говорят, что фильтры на детали не применяются у них
не совсем пойму что я делаю не так, перепробовал все что знаю и то что нагуглил.
как вызвать фильтры. когда я получил коллекцию записей по ним, вероятно у них метод не успевает отработать
условие в котором я сравниваю с дефолтным гуидом, нужно потому что если я его не вставлю, то выведутся буквально все записи, как это обойти я не смог придумать
Нравится
1 комментарий
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать