Как добавить пересчет к-ва записей после своих кастомных быстрых фильтров
Всем доброго дня!
Добавила свои кастомные быстрые фильтры через аттрибуты и переопределение функции 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();
},
}
};
});
Анастасия Шумейко,
Добрый день.
Вам нужно проверить уходит ли запрос на получение количества записей.
Если запрос уходит, то нужно проверить фильтрацию которая уходит в запросе. Возможно, что количество обновляется, но неправильно, поскольку используется та же фильтрация.
Если запрос не уходит, то нужно проверить как он формируется в базовой версии и вызвать обновление количества записей.
Анастасія Шумейко,
А поделитесь, пожалуйста, способом сделать свои кастомные быстрые фильтры ?