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

Редактирование и сохранение в ячейках таблицы

Программирование редактируемых ячеек применяется только для ячеек таблицы, которая используют комбинированный или внешний источник данных, для таблиц с внутренним источником данных используется встроенный механизм редактирования в соответствии с типом значения ячейки, которое задано в индексном поле элементы. Если запрашиваемая ячейка для редактирования не найдена в индексном поле элементы, то редактирование не происходит. При программировании сложного поведения процесса редактирования значения ячейки используются обработчики событий редактирование и сохранение.

Можно настраивать тип поля ввода ячейки, создаваемого при редактировании ячейки, при помощи констант РЕД_.... При помощи дополнительных параметра редактора в ячейке можно устанавливать минимальные и максимальные вводимые значения, максимальную длину вводимого текста, точность числового значения и т.д.

В обработчике сохранение задается тип фактически сохраняемого значения. При этом имеется связь редактируемого значения в обработчике редактирования и сохраняемого значения в обработчике сохранение. То есть если обработчик редактирование вернул значение типа строка, то в обработчик сохранение поступит значение типа строка.

Пример

Пример иллюстрирует редактирования ячеек таблицы.

  ...
 ТАБЛИЦА: Таблица1 = [  ...
                        редактирование = {Реадктирование_таб},
                        сохранение = {Сохранение} ];

  ФУНКЦИЯ ЦЕЛОЕ: Реадктирование_таб(ПЕРЕМ ТАБЛИЦА: элемент; ЦЕЛОЕ: столбец; ЦЕЛОЕ: строка; 
  ПЕРЕМ *: знач; ПЕРЕМ СТРОКА: парам)
    ВЫБОР (столбец)
      #2:
        знач = товар[строка].название
        РЕЗУЛЬТАТ = РЕД_СТРОКА
      #4:
        знач = товар[строка].цена
        РЕЗУЛЬТАТ = РЕД_ЧИСЛО
    КОНЕЦ_ВЫБОРА
  КОНЕЦ_ФУНКЦИИ

  ФУНКЦИЯ Сохранение(ПЕРЕМ ТАБЛИЦА: элемент; ЦЕЛОЕ: столбец; ЦЕЛОЕ: строка; *: знач)
    ВЫБОР (столбец)
      #2: товар[строка].название = СТРОКА(знач)
      #4: товар[строка].цена = знач
    КОНЕЦ_ВЫБОРА
  КОНЕЦ_ФУНКЦИИ
  ...

См. также: