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

Заполнение схемы таблиц

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

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

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

Схема таблицы задается при помощи типа СХЕМА. Определенный набор настроек схемы можно сохранить под определенным именем при помощи метода УСТ_ИМЯ_СХЕМЫ, то есть при закрытии отчета сохраняются все изменения, сделанные пользователем: ширины, заголовки, порядок расположения столбцов и т.д. Если имя схемы не было задано, то сохранения не происходит - при последующем вызове отчет откроется с изначальными настройками, заданными в алгоритме. Таким образом, данный метод позволяет загружать и сохранять определенный набор настроек схемы по ее имени.

Существует два вида схем - текущая схема и схема по умолчанию. Текущая схема - этот тот набор настроек, который отображается на экране в данный момент. Каждое пользовательское изменение ширины, видимости и т.д. меняют текущую схему. Схема по умолчанию используется, когда не задано никакой схемы таблицы или не найдена сохраненная схема. Также схема по умолчанию применяется при нажатии на кнопку "По умолчанию" в стандартных диалогах порядка и видимости столбцов, выбора столбцов для поиска. Данная кнопка сбрасывает текущую схему и устанавливает настройки согласно схеме по умолчанию. Когда пользователь нажимает такую кнопку, текущие настройки таблицы сбрасываются в соответствии со схемой по умолчанию. Как правило, всегда стоит задавать схему по умолчанию при помощи метода УСТ_СХЕМУ_ПО_УМОЛЧ . Настройки схемы по умолчанию перекрываются настройками схемы, которые задаются при помощи метода УСТАНОВИТЬ_СХЕМУ.

Пример

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

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

ВЫЧИСЛИТЬ
  ПЕРЕМ Отчет: отчет
  отчет.ПОКАЗАТЬ
КОНЕЦ

См. также: