Студия/Связанные элементы

From SunFlurry wiki
Jump to: navigation, search

Связанные элементы представляют собой функциональные кнопки, привязанные к визуальным элементам формы. К примеру, для выбора объекта к поле редактирования, обычно используется кнопка ABCHOOSE.png, располагающаяся непосредственно за полем редактирования, при нажатии на кнопку, открывается окно с таблицей элементов справочника либо всплывающее меню и пр., где пользователь может выбрать требуемый объект, который помещается затем в поле редактирования. Кроме этой кнопки за полем редактирования могут быть закреплены и другие кнопки (к примеру ABINFO.png для открытия формы редактирования элемента, выбранного в поле редактирования в данный момент). Такие кнопки используются не только для полей редактирования или полей со списками, но и для табличных элементов -- таблиц, списков, деревьев и пр. В случае табличных элементов, группа кнопок обычно располагается в заголовке таблиц. Часто кнопки имеют заголовки, всплывающие подсказки, выделены цветом и т.д. Добавление таких кнопок на форму во время ее разработки в Студии и описание всех их действий было бы достаточно трудоемкой задачей для больших и сложных форм. Для проектов, над которыми работает команда разработчиков, вид и действие этих кнопок различались бы в разных формах, так как они были бы созданы разными людьми, что сделало бы проект менее интуитивным и удобным для использования.

Чтобы облегчить задачу создания форм и помочь в создании проектов с последовательным и одинаковым для всех форм интерфейсом, в системе создана специальная группа стандартных кнопок, которые можно добавить практически к любому визуальному элементу с помощью двойного клика мышью в редакторе связанных элементов (см. ниже), доступного из редактора свойств при работе с формой в Студии. Для каждой из кнопок можно задать заголовок, который будет использоваться наряду со стандартной иконкой, кроме того, можно добавить разделитель, дополнительную кнопку выбора, всплывающую подсказку и сопоставить комбинацию клавиш для быстрого вызова. При работе пользователя кнопки по умолчанию будут выполнять заранее закрепленные за ними функции, применительно к содержимому визуального элемента, с которым они связаны. Некоторые кнопки, однако, не имеют стандартного действия (к примеру, кнопка помощи), кроме того, иногда необходимо изменить стандартное действие. Нажатие пользователем на любой связанный элемент вызывает исполнение визуального события 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 выбрана кнопка "Подбор"). Средняя группа "параметры выбранного элемента" позволяет изменять следующие параметры кнопок:

  • Заголовок элемента -- позволяет добавить на кнопку заголовок.
  • Подсказка -- кнопка будет выводить всплывающую подсказку при наведении курсора мыши.
  • Горячая клавиша -- позволяет выбрать комбинацию клавиш для быстрой активации этой кнопки с помощью редактора горячих клавиш.
  • Использовать дополнительный список выбора для данного элемента -- опция позволяет добавлять к элементу справа дополнительную кнопку, которую можно использовать программно, к примеру, для выбора пунктов из списка.
  • Добавить разделитель после данного элемента -- опция добавляет разделитель, который можно использовать, чтобы разделять группы кнопок для удобства восприятия пользователем.