6.14. Горячие клавиши¶
Note
Статья находится в стадии написания.
6.14.1. Назначение¶
Термин Горячие клавиши является собирательным названием сочетаний клавиш на клавиатуре, нажимаемым пользователем одновременно. Является способом быстро, без использования мыши, вызвать на выполнение некоторый предопределенный функционал. Такой как наиболее часто используемые операции или действия.
Если сочетание клавиш состоит только из одной клавиши, то оно записывается просто как название этой клавиши. Например: Esc - клавиша “escape”.
Если сочетание клавиш состоит из более чем одной клавиши, то оно записывается как названия всех клавиш, составляющих сочетание, разделенных знаком плюс. Например: Ctrl+B - одновременное нажатие клавиш Control и латинской B.
Если в сочетании используется клавиша, расположенная на дополнительной клавиатуре, то в ее названии указывается модификатор Num. Например: Num + - клавиша “плюс” на дополнительной клавиатуре.
6.14.2. Несколько сочетаний на одно действие¶
Added in version AS: 1.27.0-rc17; AS 1.25.17
Одному действию можно назначить несколько сочетаний клавиш. Сочетания записываются в одной строке
через разделитель |. Например: Ctrl+E|Shift+Ctrl+E. На более старых версиях сервера
значение с разделителем | не вызывает ошибок, но трактуется как одна некорректная комбинация:
сочетания из списка не действуют, а в подписях меню отображается исходная строка с |.
На таких версиях используйте одиночные значения.
Все сочетания списка равноправны: действие выполняется по нажатию любого из них. В элементах интерфейса (подписи пунктов меню, всплывающие подсказки) список отображается через запятую, например: «Ctrl+E, Shift+Ctrl+E».
Одиночное значение является списком из одного элемента, поэтому существующие значения работают без изменений.
Note
Если конкретное сочетание Горячих клавиш не назначено в GlobalServer, или не назначено прикладным разработчиком для активной выборки, или назначено в GlobalServer, но переназначено на пустое значение прикладным программистом для активной выборки и, одновременно, не назначено в меню и тулбаре приложения, то нажатие пользователем такого сочетания будет обработано браузером, согласно его предпочтениям.
Note
Назначения горячих клавиш загружаются при запуске приложения. Изменения настроек (например, в выборке «Горячие клавиши») вступают в силу при следующем запуске приложения; в уже открытых приложениях до их перезапуска продолжает действовать прежний набор сочетаний.
6.14.3. Список горячих клавиш¶
Фреймворк предоставляет следующие виды горячих клавиш:
Типовые горячие клавиши (горячие клавиши для некоторых стандартных операций)
Глобальные горячие клавиши (горячие клавиши, реализованные на низких уровнях сервера приложений и фреймворка)
Горячие клавиши приложения (горячие клавиши, назначенные операциям в прикладных модулях)
6.14.3.1. Типовые горячие клавиши¶
Горячая клавиша |
Описание |
Мнемоника |
|---|---|---|
Esc |
Закрыть форму. |
CLOSEFORMCANCEL |
F1 |
Подсказка. |
HELP |
F2 |
Закрыть форму с сохранением. |
CLOSEFORMOK |
F4 |
Открыть карточку редактирования. |
CARDEDIT |
F11 |
Детализация. |
SHOWTAB |
F12 |
Обновить. |
REFRESH |
Ctrl+B |
Отменить все изменения на форме. |
CANCELFORM |
Ctrl+S |
Сохранить изменения. |
SAVEFORM |
Ctrl+Alt+I |
Показать информацию об объекте. |
SHOWABOUTOBJECT |
Shift+Ctrl+Alt+A |
Открыть диалог аудита объекта. |
SHOWAUDITOBJECT |
Shift+Ctrl+Alt+F |
Открыть диалог аудита открытия форм. |
SHOWAUDITSEL |
6.14.3.2. Глобальные горячие клавиши¶
Приведённые сочетания являются значениями по умолчанию. Прикладное решение может переопределить любое из них (или задать пустое значение) через таблицу горячих клавиш решения.
Горячая клавиша |
Описание |
Мнемоника |
|---|---|---|
Esc |
Отмена редактирования (в состоянии редактирования). Закрытие формы/диалога. |
HK_CANCELEDIT |
Ins |
Выбрать в мультиселекте. |
HK_MULTI_SELECT |
Enter |
Начать редактирование. |
HK_STARTEDIT |
Enter |
Закончить редактирование. |
HK_ENDEDIT |
F7 |
Применить универсальный фильтр. |
HK_UNI_FLT_OK |
- |
Свернуть дерево. |
HK_COLLAPSE_TREE |
Ctrl+Enter |
Открыть в редакторе. |
HK_SHOWEDITOR |
Ctrl+- |
Закрыть текущую ветку дерева. |
HK_TREE_CLOSE_CURRENT_NODE |
Ctrl+= |
Открыть текущий узел дерева. |
HK_TREE_OPEN_CURRENT_NODE |
Ctrl+Del |
Скрыть колонку. |
HK_HIDE_COLUMN |
Ctrl+F7 |
Отфильтровать по выбранной ячейке. |
HK_FILTER_BY_FOCUSED_CELL |
Ctrl+F9 |
Выполнение отладочного макроса. |
HK_EXECUTE_DEBUG_MACRO |
Ctrl+K |
Открыть Навигационный хаб. |
|
Ctrl+Shift+K |
Открыть Навигационный хаб с областью поиска “Все”. |
|
Ctrl+L |
Отобразить все колонки. |
HK_ALL_COLUMNS_ON_SCREEN |
Ctrl+O |
Открыть универсальный фильтр. |
HK_UNI_FLT_OPEN |
Ctrl+R |
Сервис замены значений. |
HK_REPLACE_VALUE_SERVICE |
Ctrl+P |
Вывести на печать. |
HK_PRINT_GRID |
Ctrl+W |
Пересчитать ширину колонок. |
HK_CALC_COLUMNS_WIDTH |
Ctrl+Alt+= |
Развернуть всю ветку дерева от текущего узла, включая вложенные уровни. |
HK_TREE_OPEN_CURRENT_SUBNODE |
Ctrl+Alt+- |
Свернуть всю ветку дерева от текущего узла, включая вложенные уровни. |
HK_TREE_CLOSE_CURRENT_SUBNODE |
Ctrl+Alt+Left |
Зафиксировать по левому краю. |
HK_FIX_AT_LEFT_SIDE |
Ctrl+Alt+Right |
Зафиксировать по правому краю. |
HK_FIX_AT_RIGHT_SIDE |
Ctrl+Alt+F7 |
Отчистить универсальный фильтр. |
HK_UNI_FLT_CLEAR |
Ctrl+Alt+A |
Применить автофильтр. |
HK_AUTO_FILTER_GRID |
Ctrl+Alt+D |
Сбросить пользовательские настройки. |
HK_RESET_USER_SETTINGS |
Ctrl+Alt+F |
Отфильтровать выбранные записи. |
HK_FILTER_SELECTED_RECORDS |
Ctrl+Alt+G |
Область группировки. |
HK_GROUPING_ZONE_GRID |
Ctrl+Alt+H |
Настройка видимости колонок. |
HK_COLUMNS_VISIBILITY_TUNING |
Ctrl+Alt+T |
Полностью раскрыть дерево. |
HK_FULLEXPAND_TREE |
Ctrl+Alt+U |
Загрузить пользовательские настройки. |
HK_USER_SETTING_LOAD |
Shift+Ctrl+F7 |
Отменить универсальный фильтр. |
HK_UNI_FLT_CANCEL |
Shift+Ctrl+= |
Сумма значений по выделенным записям |
HK_CALC_SUMM_OF_SEL_REC |
Shift+Ctrl+F |
Открыть редактор фильтра. |
HK_FILTER_BULDER_GRID |
Shift+Ctrl+O |
Открыть общие настройки универсального фильтра. |
HK_UNI_FLT_OPENPUBLIC |
Shift+Ctrl+S |
Сохранить как… |
HK_SAVE_AS |
Shift+Ctrl+T |
Показать промежуточные итоги. |
HK_INTERMEDIATE_RESULTS_GRID |
Shift+Ctrl+Alt+D |
Открытие диалога отладчика. |
HK_DEBUG_WINDOW |
Shift+Ctrl+Alt+W |
Открытие диалога отладчика. |
HK_DEBUG_WINDOW_2 |
Shift+Ctrl+Alt+V |
В Oracle решении: открытие карточки текущей выборки ( |
HK_SELECTION_CARD |
Описание |
Мнемоника |
|---|---|
Перейти в подвал. |
HK_FOOTER_ZONE |
Сохранить универсальный фильтр как. |
HK_UNI_FLT_SAVEAS |
Свернуть дерево. |
HK_COLLAPSE_TREE |
Получить все записи. |
PMI_FETCH_ALL_RECORDS_GRID |
Сохранить пользовательские настройки. |
HK_USER_SETTING_SAVE |
Выбрать помеченные записи. |
HK_SELECT_MARK_RECORDS_GRID |
Сохранить универсальный фильтр. |
HK_UNI_FLT_SAVE |
Сохранить пользовательские настройки как. |
HK_USER_SETTING_SAVEAS |
6.14.4. Порядок обработки нажатия горячих клавиш¶
Основная стратегия обработки нажатия пользователем горячей клавиши:
Горячие клавиши операций активного фрейма (типовые и назначенные в приложении через свойство операции sShotCut).
Горячие клавиши операций фрейма мастер-выборки, если таковые фреймы есть (типовые и назначенные в приложении через свойство операции sShotCut).
Если сочетание найдено, то выполняется соответствующая операция и поиск прекращается.
Если сочетание клавиш повторяется, то выполнится операция, которая определена в стратегии раньше (имеет больший приоритет).
Note
Внутренняя архитектура веб-приложения диктует то, что каждый фрейм имеет свой собственный обработчик нажатия горячих клавиш. Таким образом, при нажатии горячей клавиши, программное событие будет отправлено по очереди всем фреймам, начиная с созданного самым последним и по-очереди до созданного самым первым. Каждый обработчик события самостоятельно принимает решение: относится ли событие к данному конкретному фрейму и, если не относится, обработчик самостоятельно игнорирует это событие. Если же относится: обработчик выполняет соответствующую операцию и “останавливает” событие.
6.14.4.1. Горячие клавиши во встроенном веб-контенте¶
Changed in version 1.29.0-ms3: Горячие клавиши срабатывают, когда фокус находится внутри встроенного веб-контента.
Встроенный веб-контент — это содержимое браузерного фрейма (iframe): HTML-фрейм, диаграмма, график внешнего контрола, OLAP-пивот и подобное. Это отдельный документ со своим обработчиком клавиатуры, его не следует путать с фреймом выборки из пунктов 2 и 3.
Если фокус находится внутри встроенного веб-контента, нажатие сначала получает сам контент. Ввод текста в поля
контента горячие клавиши не перехватывают. Сочетание, которое контент не обработал, уходит на уровни 1-3, и если
там нашлась операция, контент это нажатие дальше не получает. Чтобы оставить сочетание контенту, вызовите в его
обработчике keydown метод preventDefault() или stopPropagation().
Ограничения:
Обработчик
keydownвешайте на элемент или наdocument. Обработчик наwindow, установленный после загрузки документа, срабатывает уже после уровней 1-3 и сочетание себе не оставит.Вложенные iframe внутри встроенного веб-контента не обслуживаются.
Контент, загруженный с другого домена (cross-origin), и iframe с
sandboxбезallow-same-originбраузер закрывает от GlobalServer: уровни 1-3 для нажатий из них не отрабатывают. HTML-фрейм этого ограничения не имеет,allow-same-originв нём есть всегда.В режиме редактирования HTML-фрейма нажатие сначала проходит уровни 1-3: операция с сочетанием Shift+буква, Ctrl+B или Ctrl+Z срабатывает вместо ввода или форматирования текста.