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

Тиражирование строк, режим копирования данных

При создании многостраничной формы в регулярном разделе следует создать строку или столбец, который будет выступать в качетсве образца для остальных. Строка/столбец-образец множится при помощи методов ДОБАВИТЬ_СТРОКУ, ВСТАВИТЬ_СТРОКУ и ВСТАВИТЬ_СТОЛБЕЦ, ДОБАВИТЬ_СТОЛБЕЦ. Использование идентификаторов ячеек бесполезно, следует задать идентификаторы строк и столбцов. По этим идентификаторам можно узнать позицию строки/столбца - образца на табличной форме, которая передается в методы тиражирования строк и столбцов. В Инспекторе объектов или в меню Форма-Ячейки-Атрибуты на вкладке Данные ячейкам в строке-образце нужно установить тип, чтобы при добавлении строк можно было копировать атрибуты ячеек строки-образца.

При тиражировании строк необходимо задать режим добавления строк и столбцов, так как по умолчанию границы, типы ячеек и данные ячеек не копируются. В объектном типе ТФ_РЕЖИМ_ДОБАВЛЕНИЯ определяется, что будет взято из исходной строки-образца в добавляемую строку. Режим добавления устанавливается методом УСТ_РЕЖ_ДОБАВЛЕНИЯ.

Строки имеют общие горизонтальные границы. Добавление строки приводит к тому, что общие границы подвергаются делению по правилам. Деление задается константами деления границ ТФ_ДГ_....

К примеру, для создания прайс-листа в Редакторе форм создается в регулярном разделе строка-заголовок таблицы и пустая строка-образец, которая будет растиражирована.

  ...
  ФУНКЦИЯ Заполнение
    ПЕРЕМ ТФ_ЯЧЕЙКА: яч_наим, яч_ед, яч_цена
    ПЕРЕМ стр = тф.ПОЗ_СТРОКИ("Раздел1", "строка-образец")
    ПЕРЕМ ТФ_РЕЖИМ_ДОБАВЛЕНИЯ: режим_добавления
    режим_добавления = [копировать_данные = НЕТ, копировать_атрибуты = ДА, 
	деление_границ = ТФ_ДГ_КОПИРОВАТЬ]
    УСТ_РЕЖ_ДОБАВЛЕНИЯ(режим_добавления)
    ЦИКЛ ПОКА(стр <= 5)
      яч_наим = [имя_раздела = "Раздел1", имя_столбца = "наименование", строка = стр]
      яч_ед = [имя_раздела = "Раздел1",  имя_столбца = "изм", строка = стр]
      яч_цена = [имя_раздела = "Раздел1", имя_столбца = "цена", строка = стр]
      тф.ДОБАВИТЬ_СТРОКУ("Раздел1", стр)
      стр++
    КОНЕЦ_ЦИКЛА
  КОНЕЦ_ФУНКЦИИ
  ...

См. также: