9. Пошаговые фильтры форм

Многие формы в Менеджере открываются через прохождение пошагового фильтра. В основном он используется, чтобы задать условия фильтрации запроса к серверу. Каждый шаг формирует свой набор параметров. Управление пошаговым фильтром осуществляется с помощью виртуального метода TRootForm.CreateWizard. Это функция возвращает результат логического типа, указывающий на наличие фильтра в принципе. При создании основной формы в перекрытом методе CreateWizard создается объект класса TssFormMapWizard, который сохраняет необходимые данные основной формы в своем объекте-хранителе RootCreateData и прерывает процесс ее создания. Затем запускается метод TssMapWizard.Run, который создает цепочку форм-шагов фильтра. После прохождения всех шагов исходная форма создается заново с передачей параметров, полученных от форм-шагов.

Для добавления шага в цепочку служит метод TssMapWizard.AddStep с параметром StepClassName. В качестве класса шага фильтра могут выступать как специфичные формы-шаги, так и все зарегистрированные формы-списки, если их метод CanUseAsWizardStep возвращает True. Шаги могут пропускаться при первом запуске, если задана инициализация по умолчанию, либо когда их данные сохранены пользователем при помощи команды на форме шага «Ранее установленные фильтры – Сохранить данные фильтра».

Параметры пошагового фильтра передаются в датасет в событии BeforeOpen, о чем нужно не забыть при настройке нового шага.