Добрый день!
Как сделать фильтр в разделе заказы, который будет фильтровать по контрагенту. Фильтр как поле с не всплывающим окном. Типа как если нажали на обычный фильтр и выбрали поле контрагент для фильтрации и в этом поле вводим текст оно в выпадающем списке предлагает варианты
При открытии карточки, чтобы не исчезал фильтр в поле, после закрытия карточки.
П.С. не такой как по ответственному, где надо нажать на него, нажать выбрать из списка и в новом окне поискать его. Надо просто поле в которое сразу можно печатать текст названия контрагента
Нравится
Мы подобным образом делали поиск лидов в 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…