Руководство разработчика

Словарь терминов

Статическая часть

Статической частью формы называется совокупность структурных элементов, которые образуют ее внешний вид, и хранимых данных ячеек.

Атрибуты формы, разделы, строки, ячейки и т.п. относятся к статической части формы. Статическая часть формы обеспечивает отображение и интерактивное поведение, предопределенного характера. Для редактирования и отображения статической части не требуется какое-либо использование языка программирования. Статическая часть может быть сохранена в файл (*.ibf) и считана из него.

Обработка событий формы, создание произвольных элементов управления в ячейках становятся доступны при использовании интерактивной части.

См. также:

Интерактивная часть

Интерактивной частью формы называется ассоциируемый с ней тип ТАБ_ФОРМА, обработчики событий и элементы управления в ячейках.

Интерактивная часть может использоваться только в совокупности со статической частью. Элементы управления позволяют организовывать сложное интерактивное взаимодействие с пользователем. Обработчики событий формы позволяют управлять ее открытием и закрытием, специальным редактированием ячеек, контекстным меню, создавать собственные макросы.

См. также:

Регулярный раздел

Регулярный раздел – таблица в привычном понимании. Структура столбцов такого раздела едина для всех строк. Изменение любого параметра столбца (например, ширины) отражается на всех строках регулярного раздела.

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

Вот пример регулярного раздела с объединенной ячейкой:

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

См. также:

Нерегулярный раздел

Нерегулярный раздел – набор строк с разнородной структурой столбцов. Изменение параметров столбца (например, ширины) в одной строке не затрагивает других строк. В нерегулярном разделе ячейка и столбец взаимно однозначно соответствуют друг другу.

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

Вот пример нерегулярного раздела:

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

См. также:

Граница ячеек

Границы ячеек образуют видимый пользователем узор линий.

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

Рассмотрим разные случаи определения границы на примере ячейки №4 (выделена желтым цветом).

Горизонтальные черные границы определяются как границы между ячейками №1 - №4 и №4 - №5 (обратите внимание на порядок, граница №5 - №4 была бы невидимой). Аналогично определяются синие границы: №2 - №4 и №4 - №6. Черная вертикальная граница задается парой №3 - №4. Границы с внешней областью (ВО) задаются следующим образом: зеленая ВО - №4, красная №4 - ВО, голубая №4 - ВО. Хотя красная и голубая границы задаются одинаковой парой, но неоднозначности не возникает, т.к. вертикальные и горизонтальные границы образуют независимые множества.

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

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

См. также:

Декорационный элемент

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

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

Реализовано 5 типов декорационных элементов: линия, рамка, текст, стрелка и картинка. Элементы "линия" и "рамка" обеспечивают вывод соответствующих графических примитивов. Элемент "стрелка" подобен "линии", но концы (один или оба) заканчиваются заострением различных стилей. Элементы "текст" и "картинка" более сложные. Для элемента "текст" задается шрифт из набора шрифтов формы и угол поворота. Вывод картинки может осуществляться с масштабированием, сохранением пропорций и поворотом. Кроме того, само изображение может сохраняться в файле табличной формы или задаваться ссылкой на файл.

См. также:

Специальное редактирование

Встроенный механизм табличной формы (статическая часть) поддерживает редактирование ячеек с типами строка, число, целое, логика, дата, время и код. Разрешение редактирования ячейки в режиме показа формы пользователю задается в атрибутах ячейки (независимо от типа ячейки). Там же задается признак специального редактирования. Этот признак указывает, что при запросе на редактирование ячейки в режиме с интерактивной частью должен быть вызван обработчик события редактирование, а по завершении редактирования с принятием изменений – обработчик события сохранение. Без установки признака специального редактирования указанные обработчики не вызываются, даже если они установлены. В режиме показа без интерактивной части признак специального редактирования игнорируется.

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

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

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

Обработчик редактирование вообще может запретить создание редактора ячейки. Вместо настройки редактора он может произвести какие-то свои действия, например, показать диалог.

См. также:

Ячейка типа макрос

Макросы – автоматически вычисляемое значение ячейки. С одной стороны, ячейки типа макрос обеспечивают удобство. Без программирования в ячейке может отображаться текущая дата или название формы. С другой стороны, эти возможности можно легко запрограммировать (в режиме с интерактивной частью).

Незаменимыми макросы являются для создания ячеек, в которые выводится информация, зависимая от разбивки формы на страницы. Самым очевидным примером является вывод номера страницы. С помощью обработчика макрос можно задавать подстановки произвольной сложности. Особенно важны макросы для шапок разделов. Повторяющиеся вверху и внизу страницы шапки разделов были бы тождественны на каждой странице, если бы не макросы. Так в шапку может выводиться итоговая сумма по строкам раздела, размещенным на данной странице. Более подробное описание приведено в статье Использование макросов.

См. также:

Метки формы

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

При сохранении формы конкретные значения формируются на основе описаний меток. Описания меток могут быть добавлены в редакторе форм или с помощью соответствующих методов типа ТАБ_ФОРМА.

Поддерживается два типа описаний меток:

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

Примером метки первого типа может быть номер документа. Описание метки ссылается на соответствующую ячейку в форме. Например, метка "НомерДок" может ссылаться на раздел "Шапка" и идентификатор ячейки "Ном".

Примером метки второго типа может быть строковое поле для пометок. Описание метки "Комментарий" содержит строку, которую можно отображать при выборе файла.

См. также: