Как добавить пересчет к-ва записей после своих кастомных быстрых фильтров
Всем доброго дня!
Добавила свои кастомные быстрые фильтры через аттрибуты и переопределение функции initQueryFilters , фильтры работают как нужно. Теперь не могу найти где находится базовый пересчет количества. Может быть кто-то знает.
Нравится
var activeViewName = this.getActiveViewName(); if (activeViewName === this.get("AnalyticsDataViewName")) { this.sandbox.publish("SectionUpdateFilter", null, [this.getQuickFilterModuleId()]); }
Пробуйте запустить такой код после применения ваших фильтров
Можете отправить полный код, где делаете фильтр?
Трефилов Павел Сергеевич,
define("OrderSectionV2", ["ProcessModuleUtilities","BaseFiltersGenerateModule","css!UsrStylesOrderSectionV2"], function(ProcessModuleUtilities,BaseFiltersGenerateModule) { return { entitySchemaName: "Order", details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/, attributes: { "UsrPPNumberFilter": { "dataValueType": Terrasoft.DataValueType.TEXT }, "UsrPPNumbers": { "dataValueType": Terrasoft.DataValueType.TEXT, "values": "" }, "UsrMyNumberFilter": { "dataValueType": Terrasoft.DataValueType.TEXT }, "UsrMyNumbers": { "dataValueType": Terrasoft.DataValueType.TEXT, "values": "" }, "UsrContrFilter": { "dataValueType": Terrasoft.DataValueType.TEXT }, "UsrContr": { "dataValueType": Terrasoft.DataValueType.TEXT, "values": "" }, "UsrNameFilter": { "dataValueType": Terrasoft.DataValueType.TEXT }, "UsrMyName": { "dataValueType": Terrasoft.DataValueType.TEXT, "values": "" }, "UsrQua": { "dataValueType": Terrasoft.DataValueType.INTEGER, "values": "" }, }, diff: /**SCHEMA_DIFF*/[ { "operation": "insert", "name": "MyFilterContainer", "parentName": "LeftGridUtilsContainer", "propertyName": "items", "index": 3, "values": { "id": "MyFilterContainer", "itemType": this.Terrasoft.ViewItemType.CONTAINER, "items": [], } }, { "operation": "insert", "parentName": "MyFilterContainer", "propertyName": "items", "name": "PP_Number", "index": 1, "values": { "bindTo": "UsrPPNumberFilter", "caption": {"bindTo": "Resources.Strings.UsrPPNumberCaption"}, "controlConfig": { "change": { "bindTo": "ppNumChanged" } } } }, { "operation": "insert", "parentName": "MyFilterContainer", "propertyName": "items", "name": "DeleteButton1", "index": 2, "values": { "itemType": Terrasoft.ViewItemType.BUTTON, "caption": "", "imageConfig": {"bindTo": "Resources.Images.del_but"}, "controlConfig": { }, "layout": { "column": 0, "row": 2, "colSpan": 1 }, "click": { "bindTo": "onDel" }, } }, { "operation": "insert", "parentName": "MyFilterContainer", "propertyName": "items", "name": "my_Number", "index": 3, "values": { "bindTo": "UsrMyNumberFilter", "caption": {"bindTo": "Resources.Strings.myNumber"}, "controlConfig": { "change": { "bindTo": "myNumberChanged" } } } }, { "operation": "insert", "parentName": "MyFilterContainer", "propertyName": "items", "name": "DeleteButton2", "index": 4, "values": { "itemType": Terrasoft.ViewItemType.BUTTON, "caption": "", "imageConfig": {"bindTo": "Resources.Images.del_but"}, "controlConfig": { }, "layout": { "column": 0, "row": 2, "colSpan": 1 }, "click": { "bindTo": "onDel2" }, } }, { "operation": "insert", "parentName": "MyFilterContainer", "propertyName": "items", "name": "my_Contr", "index": 5, "values": { "bindTo": "UsrContrFilter", "caption": {"bindTo": "Resources.Strings.myContr"}, "controlConfig": { "change": { "bindTo": "myContrChanged" } } } }, { "operation": "insert", "parentName": "MyFilterContainer", "propertyName": "items", "name": "DeleteButton3", "index": 6, "values": { "itemType": Terrasoft.ViewItemType.BUTTON, "caption": "", "imageConfig": {"bindTo": "Resources.Images.del_but"}, "controlConfig": { }, "layout": { "column": 0, "row": 2, "colSpan": 1 }, "click": { "bindTo": "onDel3" }, } }, { "operation": "insert", "parentName": "MyFilterContainer", "propertyName": "items", "name": "PeriodSelectButton", "index": 7, "values": { "itemType": Terrasoft.ViewItemType.BUTTON, "caption": "", "imageConfig": {"bindTo": "Resources.Images.LookupIcon"}, "controlConfig": { }, "layout": { "column": 0, "row": 2, "colSpan": 1 }, "click": { "bindTo": "openMyLook" }, } }, { "operation": "insert", "parentName": "MyFilterContainer", "propertyName": "items", "name": "my_Name", "index": 8, "values": { "bindTo": "UsrNameFilter", "caption": {"bindTo": "Resources.Strings.myName"}, "controlConfig": { "change": { "bindTo": "myNameChanged" } } } }, { "operation": "insert", "parentName": "MyFilterContainer", "propertyName": "items", "name": "DeleteButton4", "index": 9, "values": { "itemType": Terrasoft.ViewItemType.BUTTON, "caption": "", "imageConfig": {"bindTo": "Resources.Images.del_but"}, "controlConfig": { }, "layout": { "column": 0, "row": 2, "colSpan": 1 }, "click": { "bindTo": "onDel4" }, } }, ]/**SCHEMA_DIFF*/, methods: { clearFilter: function() { this.set("UsrPPNumberFilter", ""); this.onUsrFilterChanged(); }, onUsrFilterChanged: function() { this.reloadGridData(); }, initQueryFilters: function(esq) { this.callParent(arguments); //номер в пп var usrEmailFilter = this.get("UsrPPNumbers"); if (usrEmailFilter) { esq.filters.add("UsrPPNumberFilter", this.Terrasoft.createColumnFilterWithParameter( this.Terrasoft.ComparisonType.CONTAIN, "UsrNumberInPP".substring(), usrEmailFilter)); } else { esq.filters.removeByKey("UsrPPNumberFilter"); } //Номер var usrMyFilter = this.get("UsrMyNumbers"); if (usrMyFilter) { esq.filters.add("UsrMyNumberFilter", this.Terrasoft.createColumnFilterWithParameter( this.Terrasoft.ComparisonType.CONTAIN, "Number".substring(), usrMyFilter)); } else { esq.filters.removeByKey("UsrMyNumberFilter"); } //Контрагент var usrContrFilter = this.get("UsrContr"); if (usrContrFilter) { esq.filters.add("UsrContrFilter", this.Terrasoft.createColumnFilterWithParameter( this.Terrasoft.ComparisonType.CONTAIN, "Account.Name".substring(), usrContrFilter)); } else { esq.filters.removeByKey("UsrContrFilter"); } //Название var usrNameFilter = this.get("UsrMyName"); if (usrNameFilter) { esq.filters.add("UsrNameFilter", this.Terrasoft.createColumnFilterWithParameter( this.Terrasoft.ComparisonType.CONTAIN, "UsrName".substring(), usrNameFilter)); } else { esq.filters.removeByKey("UsrNameFilter"); } }, ppNumChanged: function(a, b, c) { this.set("UsrPPNumbers", a); this.onUsrFilterChanged(); }, myNumberChanged: function(a, b, c) { this.set("UsrMyNumbers", a); this.onUsrFilterChanged(); }, myContrChanged: function(a, b, c) { this.set("UsrContr", a); this.onUsrFilterChanged(); }, myNameChanged: function(a, b, c) { this.set("UsrMyName", a); this.onUsrFilterChanged(); }, addCallBack: function(args) { this.selectedRows = args.selectedRows.getItems(); var ids = []; var names = []; this.selectedRows.forEach(function(item) { ids.push(item.Id); names.push(item.Name); }); this.set("UsrContr",names); document.getElementById('OrderSectionV2my_ContrTextEdit-el').value = names; document.getElementById('OrderSectionV2my_ContrTextEdit-el').focus(); document.getElementById('OrderSectionV2my_ContrTextEdit-el').blur(); }, openMyLook: function(){ var config = { entitySchemaName: "Account", columns: ["Name"] }; this.openLookup(config, this.addCallBack, this); }, onDel: function(){ document.getElementById('OrderSectionV2PP_NumberTextEdit-el').value = null; this.set("UsrPPNumberFilter", ""); this.onUsrFilterChanged(); }, onDel2: function(){ document.getElementById('OrderSectionV2my_NumberTextEdit-el').value = null; this.set("UsrMyNumberFilter", ""); this.onUsrFilterChanged(); }, onDel3: function(){ document.getElementById('OrderSectionV2my_ContrTextEdit-el').value = null; this.set("UsrContrFilter", ""); this.onUsrFilterChanged(); }, onDel4: function(){ document.getElementById('OrderSectionV2my_NameTextEdit-el').value = null; this.set("UsrNameFilter", ""); this.onUsrFilterChanged(); }, } }; });
Анастасия Шумейко,
Добрый день.
Вам нужно проверить уходит ли запрос на получение количества записей.
Если запрос уходит, то нужно проверить фильтрацию которая уходит в запросе. Возможно, что количество обновляется, но неправильно, поскольку используется та же фильтрация.
Если запрос не уходит, то нужно проверить как он формируется в базовой версии и вызвать обновление количества записей.
Анастасія Шумейко,
А поделитесь, пожалуйста, способом сделать свои кастомные быстрые фильтры ?