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