В процессе исполнения операций визуальные действия, а также действие группировки действий, могут складываться в стек действий. Смысл стека действий в следующем:
- предоставить оператору ТСД возможность возвращаться к действиям, которые он уже выполнял (экранам, на которых он только что был), для того, чтобы что-то там поправить;
- предоставить возможность вызова каких-то последовательностей действий как подпрограмм – например, вызов меню по клавише F1, и возврат к месту, откуда меню было вызвано, по клавише Escape.
Действие окажется на стеке в том случае, если её свойство «Запомнить на стеке» будет равно «Да».
Для навигации по стеку в Mobile SMARTS предусмотрен механизм отмены действия и специальные зарезервированные команды перехода, такие как «Отмена действия», «Возврат на одно действие» и т.д. (системные переходы).
Рассмотрим как происходят переходы по стеку.
Действие |
Запомнить на стеке |
Переход к действию по отмене |
Описание |
Нет |
Главное меню |
Находясь в окне «Выбора номенклатуры» при возврате на одно действие или отмене действия (при нажатии клавиши Escape) будет выполнен переход к последнему действию, находящемуся в стеке, в данном случае это «Главное меню». | |
Да |
Главное меню |
Находясь в окне «Ввод количества» при возврате на одно действие или отмене действия (при нажатии клавиши Escape) будет выполнен переход к последнему действию, находящемуся в стеке, в данном случае это «Главное меню». Переход к «Выбору номенклатуры» (при нажатии клавиши Escape) не может быть выполнен, т.к. в настройках этого действия указано, что на стеке не запоминать. | |
Нет | Находясь в окне «Ввод даты» при возврате на одно действие или отмене действия (при нажатии клавиши Escape) будет выполнен переход к последнему действию, находящемуся в стеке, в данном случае это «Ввод количества». | ||
Нет | Находясь в окне «Выбор палеты» при возврате на одно действие или отмене действия (при нажатии клавиши Escape) будет выполнен переход к последнему действию, находящемуся в стеке, в данном случае это «Ввод количества». Переход к «Вводу даты» (при нажатии клавиши Escape) не может быть выполнен, т.к. в настройках этого действия указано, что на стеке не запоминать. |
Примеры перехода по стеку действий
Пример 1 | По порядку
Рассмотрим пример, когда у всех визуальных действий в настройках свойств «Запомнить в стек» выбрано «Да», а в настройках свойства «Отмена действия по Escape» выберем «Отмена действия» (можно выбрать «Возврат на одно действие»).
Все действия попали в стек действий. При нажатии кнопки Escape будет выполнен переход на последнее действие находящееся в стеке. В нашем примере отмена будет происходить в обратном порядке выполнения действий.
Пример 2 | Всегда возвращаться в Главное меню
Нам необходимо сделать, чтобы при нажатии кнопки Escape, из любого визуального действия всегда попадать в «Главное меню».
Для этого, нужно в действии «Главное меню» в свойствах «Запомнить на стеке» выбрать «Да».
Во всех остальных визуальных действиях (Выбор номенклатуры, Ввод количества, Ввод даты, Выбор палеты) в свойствах «Запомнить на стеке» выбрать «Нет», а в варианте перехода отмены действия указать «отмена действия» или «возврат на одно действие» (в зависимости от того, нужно запоминать внесенные действиями изменения в сессию или нет).
Теперь переход, из любого визуального действия, при нажатии кнопки Escape будет выполнен на последнее действие находящееся в стеке, в нашем примере это «Главное меню».
Пример 3 | Переходы в операциях
Рассмотрим пример, когда и в операции и в алгоритме типа документа у всех визуальных действий в настройках свойств «Запомнить в стек» выбрано «Да». У «Вызова операции» в настройках свойства «Операция была прервана» выберем «Возврат на одно действие».
У действий «Выбор номенклатуры» и «Ввод количества», находящихся в «Операции», в настройках свойства «Отмена действия по Escape» выбрано «Прервать операцию».
При отмене действий «Ввод количества» или «Выбор номенклатуры» по Escape операция будет прервана и будет выполнен переход из операции в тип документа на последнее действие находящееся в стеке главного алгоритма, в нашем примере это «Главное меню».
Стек в главном алгоритме и стек в операции - это совершенно разные стеки.
У действия «Выбор номенклатуры» в настройках свойства «Отмена действия по Escape» выбрано «Прервать операцию», а у действия «Ввод количества» выбрано «Отмена действия».
В этом случае, при отмене действия «Ввод количества» по Escape, будет выполнен переход на последнее действие находящееся в стеке. В нашем примере это действие «Выбор номенклатуры», находящееся в операции. При отмене действия «Выбор номенклатуры» по Escape операция будет прервана и будет выполнен переход из операции в тип документа на последнее действие находящееся в стеке главного алгоритма, в нашем примере это «Главное меню».
Рассмотрим случай, когда у действий «Выбор номенклатуры» и «Ввод количества», находящихся в «Операции», в настройках свойства «Отмена действия по Escape» выбрано «Отмена действий».
В этом случае, при отмене действия «Ввод количества» по Escape, будет выполнен переход на последнее действие находящееся в стеке. В нашем примере это действие «Выбор номенклатуры», находящееся в операции. При отмене действия «Выбор номенклатуры» выйти из стека операции в тип документа по Escape не получится.