фильтрация в иерархическом справочнике

Добрый день. Реализовали вызов справочного окна с иерархической структурой на основе представления с двухуровневой иерархией (в объекте представления указали колонку для иерархии, при вызове справочного окна в конфиге установили свойство hierarchical: true). Вызов окна работает. Но возникла проблема с поиском: элементы нижнего уровня не отображаются, если элементы верхнего уровня не соответствуют условию фильтрации (примеры на скриншотах). Выяснили, что фильтр применяется в методе pushSelectFilters в LookupPageViewModelGenerator, но замещение этой схемы запрещено. Необходимо сделать так, чтобы элементы верхнего уровня отображались, если есть подчинённые элементы, которые удовлетворяют условиям в строке фильтра. Есть ли альтернативные способы реализации? Кто-то сталкивался с подобной проблемой?

Нравится

2 комментария

Смотрите, создаете новую схему MyNewLookupPageViewModelGenerator

В ней можете сделать extend оригинальной схемы, либо как самый простой способ для быстрого теста, полностью скопировать оригинальную, заменив названия только.

Затем создаете по такому же принципу свою схему MyNewLookupPage в нем подключаете ранее созданную схему.

И там где вы вызываете свой справочник с иерархической структурой делаете вызов с таким конфигом

 

var config = {

                        entitySchemaName: "ExampleTable",

                        columns: ["Name", "Parent.Name"],

                        multiSelect: false,

                        hierarchical: true,

                        lookupPageName: "MyNewLookupPage"

                    };



После этого при открытии вашего справочника, будет работать уже ваша реализация метода pushSelectFilters  в схеме MyNewLookupPageViewModelGenerator

Коллеги,  здраствуйте!



Переопределить логику LookupPageViewModelGenerator  нет возможности.

Однако в будущих релизах планируется перевод иерархических реестров на Angular, где этот подход поменяется.

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