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

Редактирование значений ячейки и режимы редактирования

Встроенный механизм редактирования поддерживает редактирование ячеек со стандартными типами - строка, число, целое, логика, дата, время. Пустые ячейки, у которых не установлен тип данных, а также фиксированные строки и столбцы редактированию не подвергаются. Стандартный механизм редактирования применим только к ячейкам таблицы, которая использует внутренние источники данных. При использовании стандартного механизма редактирование ячейки осуществляется в соответствии с типом ее содержимого. Если необходимо реализовать собственную процедуру редактирования, то используются обработчики редактирование и сохранение. В обязательном порядке эти обработчики используются для ячеек таблицы с внешним источником данных, так как без них редактирование в таблице производиться не будет. Обработчик редактирование вызывается для ячеек таблиц с любым способом хранения данных, по окончании редактирования ячейки генерируется событие сохранение, в которое передается измененное пользователем значение для сохранения. Использование этих обработчиков позволяет реализовывать более сложное поведение при редактировании значений ячеек, например, реализовать схему "вижу одно – редактирую другое". Если эти обработчики событий не заданы, то используется стандартный механизм редактирования ячеек таблицы. Подробнее о реализации специального редактирования ячейки.

Существует несколько режимов редактирования ячейки: режим по умолчанию, режимы редактирования при нажатии любой буквенно-цифровой клавиши и при нажатии клавиш управления курсором(клавиши-стрелки). Для задания режима редактирования в объектном типе ТАБЛИЦА предусмотрены специальные поля ред_на_симв и ред_стрелки.

Доступ к редактированию ячейки осуществляется по:

Выход из режима редактирования ячейки с сохранением данных осуществляется по:

Вход в режим редактирования ячейки и выход из него по нажатию клавиши Enter и левой кнопки мыши доступен в платформе по умолчанию.

Существует также вариант выхода из режима редактирования ячейки с отменой всех внесенных изменений. Такой выход без сохранения данных происходит по нажатию Esc и тоже доступен в платформе по умолчанию.

Для возможности входа в режим редактирования по нажатию любой буквенно-цифровой клавиши для ячейки курсора в объектном типе ТАБЛИЦА в поле ред_на_симв устанавливается значение ДА. Данный режим устраняет лишнее нажатие клавиши Enter, то есть как только установлен курсор на нужной ячейке можно сразу вводить символы, причем введенные символы сразу подставляются в ячейку, заменяя предыдущее содержимое ячейки. Например, в таблице существует строковая ячейка со значением "привет". Для того чтобы заменить содержимое этой ячейки на строку "пока" в режиме редактирования по нажатию любой буквенно-цифровой клавиши, нужно установить на эту ячейку курсор и вводить строку "пока". При вводе первого символа "п", предыдущая строка "привет" удаляется, а символ "п" подставляется.

Установка значения ДА в поле ред_стрелки обеспечивает при помощи клавиш-стрелок выход из режима редактирования текущей ячейки и переход на следующую ячейку для редактирования. При нажатии клавиш-стрелок сначала происходит перемещение курсора по содержимому ячейки, как только достигается конец, происходит переход на следующую ячейку в направлении согласно нажатой клавише-стрелки. За одно действие (нажатие клавиши-стрелки) происходит выход из режима редактирования и переход на следующую ячейку в заданном направлении.

При помощи поля след_ячейка можно управлять порядком перехода на следующую ячейку для редактирования после завершения редактирования текущей с помощью Enter. Значения, устанавливаемые в этом поле позволяют переходить на следующую ячейку в строке или в столбце. Значения в этом поле задаются при помощи констант РСЯ_... . При помощи констант РСЯ_СТРОКА и РСЯ_СТОЛБЕЦ можно устранить лишнюю установку курсора в следующей для редактирования ячейке. При выходе с помощью Enter, курсор сразу переходит на следующую ячейку в строке или в столбце. Если достигнут конец строки или столбца, то осуществляется переход для редактирования на первую ячейку следующей строки или столбца.

См. также: