Строка добавления в таблице
Как и редактируемые отчеты, таблица тоже имеет строку добавления с изображением "+". По умолчанию строка добавления всегда находится внизу таблицы. За наличие строки добавления в нижней части таблицы отвечает поле стр_доб объектного типа ТАБЛИЦА. Изображение "+" в строке добавления отображается, если в таблице есть хотя бы один фиксированный столбец. При нажатии в строке добавления на это изображение вызывается обработчик команда со строковым кодом "+".
В примере ниже реализована работа строки добавления. При нажатии на строку добавления в таблице добавляются новые строки с данными.
Пример
ТИП Товары [ СТРОКА: название; ЧИСЛО: цена; СТРОКА: производитель; ФУНКЦИЯ Заполнение(ЦЕЛОЕ: номер) название = "ТОВАР_" + СТР(номер) цена = СЛУЧ_ЧИСЛО(500) производитель = "Производитель_" + СТР(номер) КОНЕЦ_ФУНКЦИИ ] ТИП Диалог_таб(ДИАЛОГ) [ ... ПОДМЕНА до_открытия = {Подготовка_данных}; Товары: товар[]; ТАБЛИЦА: Таблица1 = [ левый = 35, верхний = 20, ширина = 295, высота = 165, табиндекс = 1003, кол_фикс_столбцов = 1, ... столбцы = ( 76, 50, 105 ), строки = ( 1: 20, 3: 20, 4: 20 ), элементы = ( 1, 1: "номер", 2, 1: "наименование", 3, 1: "Производитель", 4, 1: "цена" ), стр_доб = ДА, команда = {Команда}, данные = {Получение_данных} ]; ФУНКЦИЯ Получение_данных(ПЕРЕМ ТАБЛИЦА: элемент; ЦЕЛОЕ: столбец; ЦЕЛОЕ: строка; ПЕРЕМ *: знач) ВЫБОР (столбец) #1: знач = строка - элемент.кол_фикс_строк #2: знач = товар[строка - элемент.кол_фикс_строк].название #3: знач = товар[строка - элемент.кол_фикс_строк].производитель #4: знач = товар[строка - элемент.кол_фикс_строк].цена КОНЕЦ_ВЫБОРА КОНЕЦ_ФУНКЦИИ ФУНКЦИЯ ЛОГИКА: Команда(ПЕРЕМ ТАБЛИЦА: элемент; СТРОКА: код) ВЫБОР(код) #"+": элемент.кол_строк ++ элемент.ОБНОВИТЬ РЕЗУЛЬТАТ = ДА ИНАЧЕ РЕЗУЛЬТАТ = НЕТ КОНЕЦ_ВЫБОРА КОНЕЦ_ФУНКЦИИ ФУНКЦИЯ ЛОГИКА: Подготовка_данных РЕЗУЛЬТАТ = ДА ЦИКЛ ДЛЯ (и = 1 ,5) товар[и].Заполнение(и) КОНЕЦ_ЦИКЛА КОНЕЦ_ФУНКЦИИ ... ] ВЫЧИСЛИТЬ ПЕРЕМ Диалог_таб: д // д <- данные ЕСЛИ д.ПОКАЗАТЬ_МОДАЛЬНЫЙ <> "" ТО // д -> данные КОНЕЦ_ЕСЛИ КОНЕЦ