Стек действий

Категории:  Действия
Последние изменение: 22.05.2017

В процессе исполнения операций визуальные действия, а также действие группировки действий, могут складываться в стек действий. Смысл стека действий в следующем:

В процессе исполнения операций визуальные действия, а также действие группировки действий, могут складываться в стек действий. Смысл стека действий в следующем:

  • предоставить оператору ТСД возможность возвращаться к действиям, которые он уже выполнял (экранам, на которых он только что был), для того, чтобы что-то там поправить;
  • предоставить возможность вызова каких-то последовательностей действий как подпрограмм – например, вызов меню по клавише 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 не получится.