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