Фильтрация в атрибутах

Всем доброго времени суток! Подскажите как отфильтровать значения в атрибуте, атрибут типа справочник

 В ActionDashBoard есть поле - http://prntscr.com/j49u8q

Реализовано оно следующим способом - http://prntscr.com/j49v2d, задал на данный атрибут фильтрацию, но она не срабатывает. Подскажите как реализовать фильтрацию данного атрибута?

пробовал через правила так же не работает.

Что делаю не так?

 

Заранее спасибо.

Нравится

11 комментариев

var countryId = this.get("Country") - Вы здесь получаете не айдишник, а объект. попробуйте в самом фильтре дописать - countryId.value

Alex Zaslavsky,

Данный атрибут у меня текст я заполняю его следующим образом:

"Country": {

                        "dataValueType": Terrasoft.DataValueType.TEXT,

                        "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,

                        "value": ""

                    }

getCurrentContactCountry: function () {

                        var currentContactId = Terrasoft.SysValue.CURRENT_USER_CONTACT.value;

                        var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {

                            rootSchemaName: "Contact"

                        });

                        esq.addColumn("Country", "CountryId");

                        esq.getEntity(currentContactId, function(result) {

                            if (!result.success) {

                                this.showInformationDialog(Resources.localizableStrings.AbCurrentUserCountryError);

                                return;

                            }

                            var country = result.entity.get("CountryId");

                            if(country!== null || country!== undefined) {

                                this.set("Country", country.value);

                            }

                        },this)

                    }

У меня проблема в другом в функцию фильтрации даже и не заходит

Я не силен в этом, но попробуйте вместо - 

"filters": [

function()

написать - 

filter: function()

я, к примеру, у себя в лиде вот таким образом фильтрую поле "Партнер"

Alex Zaslavsky,​​​​​​

Благодарю. Подскажите, а UsrSourcePartner определен у Вас в лиде? Мой атрибут не определен в моем объекте. Я ссылаюсь на другой объект. Данное поле грубо говоря у меня одноразовое, достал id и передал на сервис. Может не срабатывать фильтрация если нет связи основного объекта с атрибутом?

Нигрескул Алексей,

Да, это определенное поле "Партнер" (справочник Контрагенты).

По второму вопросу не подскажу, не сталкивался.

Коллеги нужна помощь, не работает фильтрация в атрибутах. Дополнительная информация клиентский модуль в котором реализую данный функционал, наследуется от BaseMessagePublisherPage ( MessagePublisher ), Может из-за этого не работать фильтрация?

Нигрескул Алексей пишет:

Коллеги нужна помощь, не работает фильтрация в атрибутах

Спрашивали - помогаю.

TLDR: террасофт факапнулся. В очередной раз. Убирите ContentType.ENUM. 

Теперь подробно (тестил на CallMessagePublisherPage. У вас я так понимаю аналог, ну да не важно):

1. Сделал фильтр, запустил, контакты отфильтровались

2. Раскомментировал contentType. ВНЕЗАПНО сортировка перестала работать.

3. Нет. Тот факт, что колонка виртуальная никак не влияет. тестил.



В итоге: я бы посоветовал посмотреть что творится в функции loadLookupData или др. функции которую, возможно, запускает enum. Честно говоря, устал воевать с ветряными мельницами. Сначала редактируемый реестр испоганили, теперь вот это...

Варфоломеев Данила,

Благодарю! Проверим.

Нигрескул Алексей пишет:

Благодарю! Проверим.

Я тут вспомнил, что уже сталкивался с таким поведением) BaseMessagePublisherPage не наследуется от BasePageV2, и из BasePageV2 не вызывается getLookupQuery. Чтобы исправить поведение ENUM-ов придётся ручками перекопировать функцию (и все вложеные в неё) на вашу страницу.

Варфоломеев Данила,

Благодарю! Все получилось! Так же сделал при добавлении нового элемента в маркетинговой кампании  - 

http://prntscr.com/j5wl4q

Работает - УРА!))

 

Показать все комментарии