Студия/Связанные элементы
Связанные элементы представляют собой функциональные кнопки, привязанные к визуальным элементам формы. К примеру, для выбора объекта к поле редактирования, обычно используется кнопка , располагающаяся непосредственно за полем редактирования, при нажатии на кнопку, открывается окно с таблицей элементов справочника либо всплывающее меню и пр., где пользователь может выбрать требуемый объект, который помещается затем в поле редактирования. Кроме этой кнопки за полем редактирования могут быть закреплены и другие кнопки (к примеру
для открытия формы редактирования элемента, выбранного в поле редактирования в данный момент). Такие кнопки используются не только для полей редактирования или полей со списками, но и для табличных элементов -- таблиц, списков, деревьев и пр. В случае табличных элементов, группа кнопок обычно располагается в заголовке таблиц. Часто кнопки имеют заголовки, всплывающие подсказки, выделены цветом и т.д. Добавление таких кнопок на форму во время ее разработки в Студии и описание всех их действий было бы достаточно трудоемкой задачей для больших и сложных форм. Для проектов, над которыми работает команда разработчиков, вид и действие этих кнопок различались бы в разных формах, так как они были бы созданы разными людьми, что сделало бы проект менее интуитивным и удобным для использования.
Чтобы облегчить задачу создания форм и помочь в создании проектов с последовательным и одинаковым для всех форм интерфейсом, в системе создана специальная группа стандартных кнопок, которые можно добавить практически к любому визуальному элементу с помощью двойного клика мышью в редакторе связанных элементов (см. ниже), доступного из редактора свойств при работе с формой в Студии. Для каждой из кнопок можно задать заголовок, который будет использоваться наряду со стандартной иконкой, кроме того, можно добавить разделитель, дополнительную кнопку выбора, всплывающую подсказку и сопоставить комбинацию клавиш для быстрого вызова. При работе пользователя кнопки по умолчанию будут выполнять заранее закрепленные за ними функции, применительно к содержимому визуального элемента, с которым они связаны. Некоторые кнопки, однако, не имеют стандартного действия (к примеру, кнопка помощи), кроме того, иногда необходимо изменить стандартное действие. Нажатие пользователем на любой связанный элемент вызывает исполнение визуального события OnAttachedButtons, в котором каждую из кнопок можно идентифицировать по ее коду и изменить ее действие, либо разрешить выполнение стандартного действия. Если программа-обработчик события не задана, будут выполнены только стандартные действия.
Кроме заданных заранее связанных элементов, при необходимости разработчик может добавить произвольное количество новых связанных элементов. Добавляемые связанные элементы не будут иметь стандартного действия по умолчанию, разработчику необходимо будет задать действие в событие OnAttachedButtons.
Редактор связанных элементов вызывается из главного Студии пункта "проект" и имеет общий вид, показанный на рис 1. Элементы в редакторе разделены на две группы -- линейные элементы (связанные с полями редактирования и другими линейными объектами форм) и табличные элементы (связанные с таблицами, списками и другими табличными объектами форм). Для добавления элемента, можно воспользоваться правым меню мыши, которое позволяет, кроме того, удалить добавленный ранее элемент, очистить его картинку, и также провести поиск по всему проекту для нахождения всех случаев использования выделенного элемента (как добавленного разработчиком, так и стандартного).
После добавления элемента, его свойства (внутренний код-идентификатор, описание и картинку) можно изменить в редакторе свойств. Кроме перечисленных свойств, у добавленных элементов присутствует еще свойство NoDisable, которое позволяет элементу оставаться доступным даже на недоступных (отключенных) визуальных элементах. К примеру, кнопка для вывода помощи обладает подобным свойством, так как помощь по элементу должна быть доступна вне зависимости от статуса доступности самого элемента.
Ниже дана таблица, описывающая свойства стандартных элементов. Имена констант используются вместо цифрового значения в коде программ для удобства поиска по всему проекту:
Имя константы | Числовое значение | Тип элемента | Стандартное действие | Комбинация клавиш | Описание |
---|---|---|---|---|---|
_AB_CHOOSE | 1 | Линейный | Да | F4, ENTER или начать вводить строку поиска | Выбор ассоциированного элемента базы данных |
_AB_CLEAR | 2 | Линейный | Да | Shift+F4, Backspace | Очистка выбранного элемента базы данных, либо текста |
_AB_INFO | 3 | Линейный | Да | Открытие выбранного элемента в режиме редактирования | |
_AB_SELECT | 4 | Линейный | Да | Выбор нескольких элементов подбором или иным образом | |
_AB_CALC | 5 | Линейный | Да | Вызов встроенного калькулятора для операций над числами | |
_AB_CALEND | 6 | Линейный | Да | Вызов встроенного календаря для операций над датами | |
_AB_HIST | 7 | Линейный | Да | Открытие истории изменения выбранного элемента базы данных | |
_AB_DESEL | 8 | Линейный | Нет | Быстрое удаление из списка выбранных элементов в диалоге галочками | |
_AB_REFRESH | 9 | Линейный | Нет | Обновить выбранный элемент из базы данных | |
_AB_HELP | 10 | Линейный | Нет | Получение подсказки/помощи по данному объекту | |
_ABB_NEW | 10001 | Таблица | Да (в опр. случаях) | INSERT | Добавление новой строки (создание нового элемента) |
_ABB_NEWGRP | 10002 | Таблица | Да (в опр. случаях) | Добавление новой папки (создание новой группы элементов) | |
_ABB_EDIT | 10003 | Таблица | Да (в опр. случаях) | F2, ENTER (в режиме выбора используется для выбора, также открывает папку) | Редактирование текущей строки (элемента) |
_ABB_COPY | 10004 | Таблица | Да (в опр. случаях) | F9 | Добавление новой строки (элемента) копированием из текущей |
_ABB_MOVE | 10005 | Таблица | Да (в опр. случаях) | Ctrl+M | Перемещение текущей строки (элемента) в другую папку (группу) |
_ABB_DEL | 10006 | Таблица | Да | DELETE | Удаление текущей строки (элемента) |
_ABB_SAVE | 10007 | Таблица | Да (в опр. случаях) | Сохранение текущей строки (элемента) | |
_ABB_FILT | 10008 | Таблица | Да (в опр. случаях) | Изменение фильтра таблицы строк (элементов) | |
_ABB_HIST | 10009 | Таблица | Да (в опр. случаях) | Открытие истории изменения текущей строки (элемента) | |
_ABB_MODE | 10010 | Таблица | Да (в опр. случаях) | Переключение режима отображения по папкам (группам) | |
_ABB_DATE | 10011 | Таблица | Да (в опр. случаях) | Выбор периода для фильтрации таблицы по датам | |
_ABB_SEARCH | 10012 | Таблица | Да | Ctrl+F | Открытие диалога поиска по строкам таблицы |
_ABB_MOVEUP | 10013 | Таблица | Да | Перемещение текущей строки вверх на одну позицию | |
_ABB_MOVEDOWN | 10014 | Таблица | Да | Перемещение текущей строки вниз на одну позицию | |
_ABB_SORTASC | 10015 | Таблица | Да (в опр. случаях) | Сортировка таблицы по неубыванию (либо открытие диалога сортировки) | |
_ABB_SORTDESC | 10016 | Таблица | Да (в опр. случаях) | Сортировка таблицы по невозрастанию (либо открытие диалога сортировки) | |
_ABB_SELALL | 10017 | Таблица | Да (в опр. случаях) | Выбор все строк (элементов) таблицы, либо установка галочек на всех строках | |
_ABB_SELNONE | 10018 | Таблица | Да (в опр. случаях) | Очистка выбора строк (элементов) таблицы, либо снятие галочек на всех строках | |
_ABB_SELINV | 10019 | Таблица | Да (в опр. случаях) | Обращение выбранных строк (элементов) таблицы, либо обращение галочек на всех строках | |
_ABB_ADDONE | 10020 | Таблица | Да (в опр. случаях) | Добавление одной строки (элемента) в таблицу выбором | |
_ABB_ADDMANY | 10021 | Таблица | Нет | Добавление нескольких строк (элементов) в таблицу подбором | |
_ABB_DELONE | 10022 | Таблица | Да (в опр. случаях) | Очистка (удаление) одной строки (элемента) таблицы | |
_ABB_DELALL | 10023 | Таблица | Да (в опр. случаях) | Очистка (удаление) всех строк (элементов) таблицы | |
_ABB_ADDFILT | 10024 | Таблица | Да (в опр. случаях) | Добавление нескольких строк (элементов) в таблицу с помощью фильтра | |
_ABB_MASSCHNG | 10025 | Таблица | Нет | Операции группового изменения строк (элементов) таблицы | |
_ABB_REFRESH | 10026 | Таблица | Да (в опр. случаях) | F5 | Обновить таблицу из базы данных |
_ABB_HELP | 10027 | Таблица | Нет | Получение подсказки/помощи по данной таблице | |
_ABB_MODEDEL | 10028 | Таблица | Да (в опр. случаях) | Переключение режима отображения удаленных строк (элементов) | |
_ABB_NEWBASED | 10029 | Таблица | Да (в опр. случаях) | Добавление новой строки (создание нового элемента), связанной с текущей (на основании текущей) | |
_ABB_CUSTOMSORT | 10030 | Таблица | Да (в опр. случаях) | Открытие диалога сортировки | |
_ABB_OPENCHILDREN | 10031 | Таблица | Да (в опр. случаях) | Открытие списка подчиненных элементов (документов) | |
_ABB_OPENPARENT | 10032 | Таблица | Да (в опр. случаях) | Открытие списка родительских элементов (документов) | |
_ABB_OPENREADONLY | 10033 | Таблица | Да (в опр. случаях) | F11 | Открыть в режиме только просмотра |
_ABB_EXPORTTOSFT | 10034 | Таблица | Да | Экспортировать в табличный редактор... |
Диалог добавления связанных элементов
Для добавления или изменения связанных элементов при редактировании формы, необходимо выбрать требуемый визуальный объект, после чего начать редактирование его связанных элементов из редактора свойств (пункт AttachedButtons).
На рис. 2 показан редактор связанных элементов для таблицы. Верхняя панель позволяет добавить кнопки в список используемых элементов. Две одинаковые кнопки добавить в один список невозможно. Для табличных элементов позволяется выбирать расположение набора кнопок. Нижняя панель является WYSIWYG редактором, где кнопки можно перемещать относительно друг друга, удалять и менять их свойства (для этого необходимо выделить требуемую кнопку, с помощью однократного клика мыши, на рис. 4 выбрана кнопка "Подбор"). Средняя группа "параметры выбранного элемента" позволяет изменять следующие параметры кнопок:
- Заголовок элемента -- позволяет добавить на кнопку заголовок.
- Подсказка -- кнопка будет выводить всплывающую подсказку при наведении курсора мыши.
- Горячая клавиша -- позволяет выбрать комбинацию клавиш для быстрой активации этой кнопки с помощью редактора горячих клавиш.
- Использовать дополнительный список выбора для данного элемента -- опция позволяет добавлять к элементу справа дополнительную кнопку, которую можно использовать программно, к примеру, для выбора пунктов из списка.
- Добавить разделитель после данного элемента -- опция добавляет разделитель, который можно использовать, чтобы разделять группы кнопок для удобства восприятия пользователем.