Форма связи

Форма связи предназначена для следующих функций:

  • установка подчинённых или равнозначных отношений между различными объектами;
  • отображение данных объекта без детализации и с изменением последовательности колонок в списке;
  • использование шаблонов документов с выводом записей дочерних списков для одной записи;
  • использование шаблонов документов со структурой, позволяющей выводить все видимые записи списка;
  • закрытие доступа к операциям над множеством записей (удаление, экспорт, импорт);
  • добавление связанных записей в дочерние объекты с подчинённой или равнозначной зависимостью;
  • автоматическое добавление исходных записей в объекте с подчинённой связью;
  • представление данных в табличной форме в различных вариантах;
  • установка зависимости отображаемых данных от вошедшего пользователя (в сетевом режиме).

Свойства формы связи:

  • префикс и имя – составное наименование формы;
  • имя группы, в которую будет помещена форма (если необходимо);
  • объект, являющийся базовым для формы и родительским для дочерних связей;
  • условие отображения числа записей в списке, которое показывается в правой нижней части окна;
  • вид формы: списочный или табличный (со списком при условии группировки записей);
  • условие отображения шаблонов в подпапке, имя которой совпадает со значением указанного поля;
  • условие отображения формы в меню проекта;
  • операции, допустимые с записями (создание, изменение, удаление);
  • видимые вкладки детализации в режиме просмотра данных;
  • изменяемые вкладки детализации, доступные при создании/изменении записи.

Если в свойстве папки шаблона указать поле объекта (или поле из ссылочного объекта), то при вызове списка шаблонов открывается список шаблонов не из корневой папки, а вложенной, которая совпадает по имени со значением указанного в свойстве поля. Доступ к шаблонам корневой или других вложенных папок – невозможен.

Дочерние объекты добавляются на вкладке Дочерние объекты. Добавление производится с указанием типа связи: подчинённая или равнозначная. При этом в структуре автоматически создаются системные объекты/поля (с префиксом ~, серого оттенка и скрытые от отображения) реализующие выбранную связь, а при работе с данными — под вкладками детализации родительского объекта добавляются вкладки с записями дочерних объектов, которые связаны с выбранной записью родительского объекта.

Допустимо добавление до 24-х дочерних объектов на одной форме.

Подчинённая связь

Подчинённая связь характеризуется привязкой множества записей дочернего объекта к одной записи родительского (один-ко-многим). При этом запись дочернего объекта может быть привязана только к одной записи родительского.

При создании связи в структуре дочернего объекта добавляется системное поле типа ссылки на объект, ссылающееся на родительский (~ИмяРодительскогоОбъекта). При работе с данными, на форме оно всегда скрыто и в него автоматически добавляется ссылка на запись родительского объекта, к которой добавляется запись дочернего. При включении поля в структуре объекта на отображение (в списке и/или детализации), при работе с данными объекта его значением можно управлять вручную, привязывая запись дочернего объекта к другим записям родительского. Если у поля нет значения, то это означает, что запись не является привязанной и она не отразится ни в одном подчинённом списке объекта.

Возможна привязка одного дочернего объекта на разных формах к тому-же родительскому объекту — при этом будет использоваться одно и то же системное поле связи. Удаление поля связи блокируется, пока не будут удалены все связи двух объектов. Удаление производится вручную и, если связь была удалена случайно, при её пересоздании потери информации не происходит.


Равнозначная связь

Равнозначная связь характеризуется привязкой множества записей одного объекта ко множеству записей другого (много-ко-многим). При этом любая запись дочернего объекта может быть привязана к любой записи родительского.

При создании связи объекта А с объектом Б в структуре базы создаётся системный скрытый объект равнозначной связи с именем ~А-Б, обозначенный символом цепочки (имя можно изменить на другое). Данный объект имеет два неудаляемых системных поля ссылки на объект, указывающие на связанные объекты. При установке видимости в меню его данные можно использовать как дополнительный способ отображения информации, а также можно менять взаимную привязку записей.

При работе с данными формы А, для каждой записи объекта А будут отображены все привязанные записи объекта Б. Если на форме объекта Б добавить равнозначный объект А, то будет использован уже существующий системный объект связи ~А-Б. В этом случае, при работе с данными, для каждой записи объекта Б будет отображён список привязанных записей объекта А.

Удаление системного объекта связи возможно только после удаления всех связей на формах. При случайном удалении связей информация не будет потеряна до ручного удаления объекта связи. При использовании равнозначной связи для двух объектов на разных формах используется один и тот же объект связи.

Системный объект равнозначной связи не может использоваться в качестве источника данных для поля ссылки на объект (как обычный пользовательский объект).

В объект равнозначной связи можно добавить любые поля, как для обычного объекта. Эти поля отображаются на вкладке равнозначной связи и никак не влияют на структуру связанных объектов. Т.е. эти поля характеризуют только связь объектов, а не сами объекты.

Если у объекта связи отсутствуют дополнительные поля, то возможно только добавление или удаление записи связи. В этом случае, при добавлении происходит только открытие списка записей дочернего объекта, и после выбора записи которого форма выбора закрывается. Если дополнительные поля заданы, то возможно их изменение. В этом случае, при добавлении записи, после формы выбора записи дочернего объекта, открывается дополнительная форма для определения дополнительных полей. При редактировании записи открывается только дополнительная форма для изменения дополнительных полей.

Объект равнозначной связи используется для настройки многопользовательского доступа к данным при включении базы данных как серверной (см. Настройка прав доступа).

Исходные записи для дочернего подчинённого объекта

Для объекта могут быть определены записи, которые автоматически будут созданы в нём, если он задан как дочерний для другого объекта в форме связи.

Автоматическое добавление записей в дочерний объект происходит при создании записи в родительском объекте на форме связи. Добавляемые записи в дочернем объекте имеют привязку к созданной пользователем записи родительского объекта через системное поле ссылки.

Определение списка автоматически добавляемых записей производится на вкладке Исходные записи, расположенной следом за вкладкой Список полей. Порядок добавляемых записей может быть изменён кнопками Вверх/Вниз.

После автоматического добавления записей управление ими производится как обычными записями дочернего объекта.


Табличное представление формы связи

При включении режима табличного представления данных, становится доступна 3-я вкладка свойств формы, на которой доступны следующие свойства:

  • поле даты, служащее в качестве заголовка столбцов;
  • поле ссылки на объект, служащее в качестве заголовка строк;
  • поле, значение которого отображается в ячейке с данными;
  • установка направления сортировки по столбцам и строкам;
  • условия скрытия пустых колонок/строк;
  • условие группировки данных.

Заголовками столбцов (поле даты) является диапазон, определенный минимальной и максимальной датами из данных, соответствующих заданному фильтру. При условии скрытия пустых колонок, в таблице остаются только колонки, имеющие хоть одно значение.

Заголовками строк (поле ссылки на объект) является список всех записей указанного объекта с заданной сортировкой. При условии скрытия пустых строк, отображаются только строки, имеющие хоть одно значение.

Двойной клик по ячейке таблицы, при наличии в ней существующей записи, приводит к открытию её на изменение. При отсутствии в ячейке данных, двойной клик открывает окно для создания записи, при этом в поля, служащие заголовками столбцов/строк, подставляются соответствующие значения. Для создания записи вне видимого диапазона таблицы служит кнопка Создать.

При задании группировки данных, все записи, соответствующие одному столбцу/строке помещаются в одну ячейку. Группировка зависит от типа данных поля, имеющего общий тип:

  • строковый (строка, ссылка на объект, переключатель в виде строк, составное, дата, время и пр.) – данные размещаются по вертикали, друг под другом;
  • иконки (переключатель в виде иконок) – располагаются по горизонтали, в одну строку;
  • числовой (число, переключатель) – суммируются.

При группировке становится доступен список записей (аналогично стандартному представлению списка в форме по заданным правилам) на второй вкладке за таблицей. На ней отображаются только те записи, которые соответствуют выбранной ячейке в таблице. При этом управление записями переносится на вкладку со списком записей. Заливка цветом ячеек данных при группировке выключается.