Добрый день!
Как сделать фильтр в разделе заказы, который будет фильтровать по контрагенту. Фильтр как поле с не всплывающим окном. Типа как если нажали на обычный фильтр и выбрали поле контрагент для фильтрации и в этом поле вводим текст оно в выпадающем списке предлагает варианты
При открытии карточки, чтобы не исчезал фильтр в поле, после закрытия карточки.
П.С. не такой как по ответственному, где надо нажать на него, нажать выбрать из списка и в новом окне поискать его. Надо просто поле в которое сразу можно печатать текст названия контрагента
Нравится
Мы подобным образом делали поиск лидов в LeadSectionV2 по многим полям
attributes: {
"UseSearchFilter": {
dataValueType: Terrasoft.DataValueType.BOOLEAN,
type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
value: false
},
"SearchFilter": {
dataValueType: Terrasoft.DataValueType.TEXT,
type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN
}
},
initQueryFilters: function(esq) {
this.callParent(arguments);
var useSearchFilter = this.get("UseSearchFilter");
var searchFilter = this.get("SearchFilter");
if (!useSearchFilter || !searchFilter) {
esq.filters.removeByKey("FilterContactCommunication");
}
else {
var filterGroup = new Terrasoft.createFilterGroup();
filterGroup.logicalOperation = Terrasoft.LogicalOperatorType.OR;
filterGroup.addItem(Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.CONTAIN, "[Lead:Id:Id].Contact", searchFilter));
filterGroup.addItem(Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.CONTAIN, "[Lead:Id:Id].Account", searchFilter));
filterGroup.addItem(Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.CONTAIN, "[Lead:Id:Id].BusinesPhone", searchFilter));
filterGroup.addItem(Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.CONTAIN, "[Lead:Id:Id].MobilePhone", searchFilter));
filterGroup.addItem(Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.CONTAIN, "[Lead:Id:Id].Email", searchFilter));
filterGroup.addItem(Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.CONTAIN, "[Lead:Id:Id].Website", searchFilter));
filterGroup.addItem(Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.CONTAIN, "[Lead:Id:Id].QualifiedAccount.Name", searchFilter));
filterGroup.addItem(Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.CONTAIN, "[Lead:Id:Id].QualifiedContact.Name", searchFilter));
filterGroup.addItem(Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.CONTAIN, "[ContactCommunication:Contact:QualifiedContact].SearchNumber", searchFilter));
filterGroup.addItem(Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.CONTAIN, "[ContactCommunication:Contact:QualifiedContact].Number", searchFilter));
filterGroup.addItem(Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.CONTAIN, "[AccountCommunication:Account:QualifiedAccount].SearchNumber", searchFilter));
filterGroup.addItem(Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.CONTAIN, "[AccountCommunication:Account:QualifiedAccount].Number", searchFilter));
esq.filters.add("FilterCommunication", filterGroup);
}
},
searchFilter: function() {
this.reloadGridData();
},
enableSearchFilter: function() {
this.set("UseSearchFilter", true);
},
disableSearchFilter: function() {
this.set("UseSearchFilter", false);
this.reloadGridData();
}
},
diff: /**SCHEMA_DIFF*/[
{
"operation": "insert",
"name": "FilterSearchContainer",
"parentName": "FiltersContainer",
"propertyName": "items",
"index": 0,
"values": {
"id": "FilterSearchContainer",
"selectors": { wrapEl: "#FilterSearchContainer" },
"itemType": Terrasoft.ViewItemType.CONTAINER,
"wrapClass": ["quick-filter-module-container-wrapClass", "custom-filter-container"],
"items": []
}
},
{
"operation": "insert",
"parentName": "FilterSearchContainer",
"propertyName": "items",
"name": "EnableSearchFilter",
"values": {
"itemType": Terrasoft.ViewItemType.BUTTON,
"style": Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
"click": {"bindTo": "enableSearchFilter"},
"caption": "Search"
}
},
{
"operation": "insert",
"parentName": "FilterSearchContainer",
"propertyName": "items",
"name": "SearchFilter",
"values": {
"bindTo": "SearchFilter",
"visible": {"bindTo": "UseSearchFilter"},
"labelConfig": {
"visible": false
},
"controlConfig": {
"className": "Terrasoft.TextEdit"
},
"textSize": "Small"
}
},
{
"operation": "insert",
"parentName": "FilterSearchContainer",
"propertyName": "items",
"name": "UseSearchFilter",
"values": {
"itemType": Terrasoft.ViewItemType.BUTTON,
"style": Terrasoft.controls.ButtonEnums.style.BLUE,
"click": {"bindTo": "searchFilter"},
"visible": {"bindTo": "UseSearchFilter"},
"markerValue": "applyButton",
"imageConfig": {"bindTo": "Resources.Images.ApplyButtonImageNew"}
}
},
{
"operation": "insert",
"parentName": "FilterSearchContainer",
"propertyName": "items",
"name": "DisableSearchFilter",
"values": {
"itemType": Terrasoft.ViewItemType.BUTTON,
"click": {"bindTo": "disableSearchFilter"},
"visible": {"bindTo": "UseSearchFilter"},
"markerValue": "cancelButton",
"imageConfig": {"bindTo": "Resources.Images.CancelButtonImageNew"}
}
}
}
Владимир Соколов,
При открытии карточки фильтр очищается :(( а нам нужно, чтобы хранился, пока не отменим
Тогда надо сохранять значение фильтра в профиле. Что-то похожее здесь обсуждалось -
https://community.terrasoft.ru/questions/polzovatelskiy-fiksirovannyy-f…