Строка добавления в таблице
Как и редактируемые отчеты, таблица тоже имеет строку добавления с изображением "+". По умолчанию строка добавления всегда находится внизу таблицы. За наличие строки добавления в нижней части таблицы отвечает поле стр_доб объектного типа ТАБЛИЦА. Изображение "+" в строке добавления отображается, если в таблице есть хотя бы один фиксированный столбец. При нажатии в строке добавления на это изображение вызывается обработчик команда со строковым кодом "+".
В примере ниже реализована работа строки добавления. При нажатии на строку добавления в таблице добавляются новые строки с данными.
Пример
ТИП Товары
[
СТРОКА: название;
ЧИСЛО: цена;
СТРОКА: производитель;
ФУНКЦИЯ Заполнение(ЦЕЛОЕ: номер)
название = "ТОВАР_" + СТР(номер)
цена = СЛУЧ_ЧИСЛО(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)
товар[и].Заполнение(и)
КОНЕЦ_ЦИКЛА
КОНЕЦ_ФУНКЦИИ
...
]
ВЫЧИСЛИТЬ
ПЕРЕМ Диалог_таб: д
// д <- данные
ЕСЛИ д.ПОКАЗАТЬ_МОДАЛЬНЫЙ <> "" ТО
// д -> данные
КОНЕЦ_ЕСЛИ
КОНЕЦ