Любой режим состоит из нескольких шагов (наследники TPOSModeStep
), перечисляемых в unit'е режима, являющегося наследником TPOSModeWizard
. Например, для режима это шаги: форма заказа (FSaleStep
), форма оплаты (FPaymentStep
), список счетов (FGuestListStep
) и так далее. Режим передает каждому шагу объект-посредник TPosModeObject
с методом Finish
, с помощью которого вызывается переход на какой-либо шаг режима. Константы команд перехода MODE_STEP_*
объявлены в unit'е uPOSModeConsts
. Обработка команды перехода выполняется в перекрытом методе StepFinished
класса-наследника TPOSModeWizard
.
Для приложения POS-терминала описано несколько режимов работы точки обслуживания, настройки которых определяются в базе данных, в таблице tp_POSModes
. Пользователь видит только тот список режимов, который соответствует его правам доступа. Режимы запускаются строго параллельно и не могут пересекаться. Режим представляет собой строго ограниченный сценарий последовательных шагов, в каждом из которых допустим определенный набор действий. Если настройками параметров устройства POS не указано иное, то при завершении сеанса работы сотрудника на каком-либо шаге режима производится сохранение текущего состояния и параметров формы (procedure SaveState()
) для текущего сеанса работы. При последующей его авторизации на POS, если данные параметры не устареют, то режим работы и текущий шаг будут восстановлены.