Зачастую при разработке услуг, где используются справочники, необходимо настроить их фильтрацию.
Чтобы настроить фильтрацию нескольких справочников между собой, важно, чтобы эти справочники имели общее значение по какому-либо атрибуту.
Для примера возьмем справочники grls_ilp_lp — справочник лекарственных средств (справочник А), grls_ilp_nd — справочник регистрационных номеров лекарственных средств (справочник B) и grls_ilp_pack — справочник упаковок (справочник С).
Справочник A имеет следующую структуру (обращаем внимание на атрибут id):
Справочник B имеет следующую структуру (обращаем внимание на атрибут id_reg, значение которого является общим с атрибутом ID первого справочника):
Справочник C имеет так же атрибут id_reg, значение которого является общим с атрибутом id первого справочника.
Настройка фильтрации
Для того, чтобы начать настраивать фильтрацию, необходимо:
1. Загрузить справочники в БД ЕПГУ, используя интерфейс ВКУ.
2. Расположить все фильтруемые справочники на форме.
3. Настроить маппинг справочника, по котому будет происходить фильтрация. В нашем случае мы будем фильтровать справочник A по атрибуту id.
4. Настроить маппинг фильтруемого справочника. В нашем случае фильтровать справочники B и C мы будем по атрибуту id_reg.
5. Далее нужно перейти в настройки поля «Установить зависимости с ранее введенными данными» справочников B и C. В поле ID атрибута указываем идентификатор справочника А. В поле Значение, для которого устанавливается некая зависимость ставим *. В поле Описание зависимости или действия управляющего зависимостью пишем filterOn.
6. После указания метода filterOn перед пользователем отображается настройка «Фильтрация по выбранному словарю».
7. В поле Наименование атрибута фильтрации из 2го словаря указываем атрибут справочника В и С, который необходимо фильтровать. В поле Тип фильтрации выбрать нужный тип фильтрации. В поле Атрибут из первого словаря вписываем originalItem.value. Можно указать и атрибут id, но т.к. в маппинге справочника А был указан этот атрибут, он будет принимать значение value. В поле Тип атрибута указываем тип атрибута справочника А (asLong — целое число, asString — строка, asDecimal — дробное число и пр.).
8. Сохранить.
Пример настройки можно посмотреть в шаблоне.
Видеодемонстрация фильтрации (справочники В и С скрыты методом displayOn):