Заполнение схемы таблиц
Схема или структура таблицы представляется столбцами и различными возможностями изменения их параметров, то есть схема хранит в себе настройки отображения таблицы и разрешения действий для всей таблицы. Разрешения действий определяют возможности изменения видимости и порядка, заголовков и оформления для всех столбцов таблицы.
Настройки столбца включают в себя различные флаги (разрешения действий, автоматическая ширина, поиск, сортировка, и т.д.), имя, заголовок и ширину столбца, а также атрибуты оформления (цвета текста и фона, шрифт, выравнивание), признак фиксированного столбца. Так как в схеме столбцы идентифицируются по имени столбца, то указание имени столбца обязательно. Заголовок столбца можно задать отдельно или использовать в качестве заголовка само имя столбца. В схему таблицы можно добавить любое количество столбцов.
Платформой предусмотрено два служебных фиксированных столбца. В первом столбце отображается позиция курсора, а во втором - значок папки, указывающий на группу, если используется многоуровневый отчет. Служебные фиксированные столбцы не участвуют в нумерации столбцов, а дополнительно заданные фиксированные столбцы участвуют в нумерации. Фиксированные столбцы не скроллируются по горизонтали, поэтому они всегда видны на форме, что удобно при работе с отчетами, где очень много столбцов. По умолчанию фиксированные столбцы имеют серый фон. Форматирование фиксированных столбцов применяется только к дополнительно добавленным фиксированным столбцам, к служебным столбцам форматирование не применимо.
Схема таблицы задается при помощи типа СХЕМА. Определенный набор настроек схемы можно сохранить под определенным именем при помощи метода УСТ_ИМЯ_СХЕМЫ, то есть при закрытии отчета сохраняются все изменения, сделанные пользователем: ширины, заголовки, порядок расположения столбцов и т.д. Если имя схемы не было задано, то сохранения не происходит - при последующем вызове отчет откроется с изначальными настройками, заданными в алгоритме. Таким образом, данный метод позволяет загружать и сохранять определенный набор настроек схемы по ее имени.
Существует два вида схем - текущая схема и схема по умолчанию. Текущая схема - этот тот набор настроек, который отображается на экране в данный момент. Каждое пользовательское изменение ширины, видимости и т.д. меняют текущую схему. Схема по умолчанию используется, когда не задано никакой схемы таблицы или не найдена сохраненная схема. Также схема по умолчанию применяется при нажатии на кнопку "По умолчанию" в стандартных диалогах порядка и видимости столбцов, выбора столбцов для поиска. Данная кнопка сбрасывает текущую схему и устанавливает настройки согласно схеме по умолчанию. Когда пользователь нажимает такую кнопку, текущие настройки таблицы сбрасываются в соответствии со схемой по умолчанию. Как правило, всегда стоит задавать схему по умолчанию при помощи метода УСТ_СХЕМУ_ПО_УМОЛЧ . Настройки схемы по умолчанию перекрываются настройками схемы, которые задаются при помощи метода УСТАНОВИТЬ_СХЕМУ.
Пример
Пример иллюстрирует задание схемы таблицы. Алгоритм устанавливает схему по умолчанию и далее считывает схему с именем "схема", если схема существует и успешно считалась, то проверяется параметр столбца схемы - текст заголовка на соответствие со строкой.
ТИП Отчет(ОТЧЕТ) [ ПОДМЕНА до_открытия = {Формирование}; ФУНКЦИЯ ЛОГИКА: Формирование РЕЗУЛЬТАТ = ДА ПЕРЕМ ЦЕЛОЕ: номер_стр ПЕРЕМ СТОЛБЕЦ_СХЕМЫ: столбец1, столбец2, столбец3, столбец4,столбец5 столбец1 = [имя = "номер", заголовок = "№",фикс = ДА] столбец2 = [имя = "наим", заголовок = "наименование"] столбец3 = [имя = "ед_из", заголовок = "единицы измерения"] столбец4 = [имя = "цена", заголовок = "цена"] столбец5 = [имя = "цена_проп", заголовок = "цена_прописью"] столбец6 = [имя = "дата", заголовок = "дата_поставки"] ПЕРЕМ СХЕМА: сх = [изм_порядка = ДА, изм_загол = ДА, изм_оформл = ДА, столбцы = (столбец1, столбец2, столбец3, столбец4, столбец5, столбец6)] УСТ_СХЕМУ_ПО_УМОЛЧ(сх) ЕСЛИ УСТ_ИМЯ_СХЕМЫ("схема") ТО ПЕРЕМ СХЕМА: схема СЧИТАТЬ_СХЕМУ(схема) ЕСЛИ (схема.столбцы[4].заголовок <> "дебет") ТО схема.столбцы[4].заголовок = "дебет" УСТАНОВИТЬ_СХЕМУ(схема) КОНЕЦ_ЕСЛИ КОНЕЦ_ЕСЛИ КОНЕЦ_ФУНКЦИИ ] ВЫЧИСЛИТЬ ПЕРЕМ Отчет: отчет отчет.ПОКАЗАТЬ КОНЕЦ