Публикация

Реализовать сложную фильтрацию

Задача

Есть некий объект – положим, контрагент, у которого есть параметр 1, параметр 2, параметр 3. 

У этого объекта есть деталь, в которой отображаются записи этого же типа объекта, например, контрагенты, у которых выполняется условие «параметр 1 + параметр 2 соответствуют основной записи», «параметр 2 + параметр 3 соответствуют основной записи», «параметр 1 + параметр 3 соответствуют основной записи».

В детали можно фильтровать по нескольким колонкам. Но как сделать UNION,  т.е. «просуммировать» несколько таких независимых наборов фильтров? 

Решение

Допустим есть наполнение таблицы контрагент:

Изображение удалено.

Следовательно, по выше написанному наполнение карточки и детали будет следующим:

1) Первый вариант наполнения детали;

Изображение удалено.

2) Второй вариант наполнения детали. Возможно, имелось в виду объединение значений, тогда деталь и карточка будет такой:

Изображение удалено.

«В детали можно фильтровать по нескольким колонкам. Но вот как сделать UNION,  т.е. «просуммировать» несколько таких независимых наборов фильтров?»

Если имелся в виду первый вариант наполнения детали, то filterGroup в методе фильтрации на карточке будет выглядеть следующим образом:

Изображение удалено.

Если имелся в виду второй вариант наполнения детали, то filterGroup в методе фильтрации на карточке будет выглядеть следующим образом:

Изображение удалено.

Также ошибка в добалении групп – не указаны их ключи. Правильное добавление групп:

filterGroup.add(1”, filterGroup1);
filterGroup.add(2”, filterGroup2);
filterGroup.add(3”, filterGroup3);

                                                           

Нравится

Поделиться

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