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 комментарий
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать