Добрый день. Реализовали вызов справочного окна с иерархической структурой на основе представления с двухуровневой иерархией (в объекте представления указали колонку для иерархии, при вызове справочного окна в конфиге установили свойство 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, где этот подход поменяется.

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

Хотелось бы отобразить иерархический справочник, есть ли компонент аналогичный TreeView? или каким другим образом это можно сделать

Нравится

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

Здравствуйте, Ольга!

Да, компонент, аналогичный TreeView есть, к примеру, он используется в окне выбора Сервиса в сервисном договоре.

Здравствуйте, Ольга!
Как сказала, Анна, такая возможность есть.
Для этого необходимо в дизайнере объектов установить в поле "Родитель в иерархии" колонку, которая будет родительской. При этом у Вас для страницы реестра нужно установить глубину вложенности (по умолчанию 1).
Но... Не все так просто.:cry:
Реестр отображает только 41 запись из БД. При установлении иерархического отображения реестра пропадает возможность постраничного просмотра.:cry:
Команда разработчиков системы на данный момент занимается исправлением этой ошибки, и в ближайших версиях BPMonline эта ошибка обязательно будет исправлена.
Спасибо Вам за вопрос.

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