FORM_FILTER OBJECT


Конструкторы

Create Создать фильтр

Свойства

Active Активен
Description Описание
Name Идентификатор
Storable Сохраняемый
Value Условия фильтра в текстовом виде
Zone Собственная зона

Описание

Класс описывает пользовательский фильтр зоны видеоокна.

Конструктор Create создает независимый, т.е. не связанный с зоной, объект, все свойства которого имеют значения по умолчанию (см. Create). Затем значения свойств можно переопределить, после чего добавить новый фильтр в коллекцию FORM_ZONE.Filters вызовом  метода FORM_FILTERS.Add. С этого момента фильтр начинает влиять на работу зоны, которой он подчинен, но только если фильтр активен, а для этого значение 1 должны иметь и его свойство FORM_FILTER.Active, и FORM_FILTERS.Active его коллекции. Все активные фильтры коллекции, а также пользовательский фильтр FORM_ZONE.UserFilter и перманентный FORM_ZONE.PermanentFilter объединяются по И. Метод FORM_FILTERS.Remove позволяет убрать фильтр из коллекции зоны и снова сделать его независимым.

FORM_ZONE.Filters панельной зоны натурально подчиненного окна выдает коллекцию порождающей зоны. При этом и сама коллекция и ее фильтры доступны только по чтению. При обращении по записи - исключение 947. Свойство Zone у фильтров такой коллекции - панель.

Фильтры, связанные с зоной, с установленными флагами Storable и Active, автоматически попадают в коллекцию фильтров зоны при загрузке окна даже в последующих сеансах работы ASB-клиента. Технически это реализовано так: для каждой зоны, в которой есть хотя бы один фильтр с установленными флагами Storable и Active, автоматически создается запись в файле БД SES, где хранится описание коллекции фильтров этой зоны. При последующих загрузках окна информация оттуда считывается и помещается в контейнер FORM_ZONE.Filters. Файл SES должен существовать в проекте и иметь

иначе зонные фильтры в файле SES молча не сохраняются и не читаются оттуда. Заполнение полей в файле SES:

Запись фильтров зоны в файл SES выполняется при каждой модификации свойств FORM_FILTER.Description и FORM_FILTER.Value, если установлены флаги FORM_FILTER.Storable и FORM_FILTER.Active. Если один из флагов FORM_FILTER.Storable и FORM_FILTER.Active имеет значение 1, то если второй меняет значение с 0 на 1, то описание данного фильтра появляется, а если с 1 на 0, то удаляется из поля Value соответствующей записи файла БД. Удаление последнего фильтра удаляет саму запись файла БД SES. Работа с файлом БД SES выполняется на параллельной жесткой транзакции.  Окна-клоны не хранят фильтры в файле SES, т.к. клоны уничтожаются при закрытии.

При первом переходе окна в состояние подготовленного для каждой его зоны с непустой коллекцией FORM_FILTERS вызывается событие OnInitializeZoneFilters.

Класс добавлен в версии 14.186.010.