Difference between revisions of "Tab.FinishEdit"
(Created page with "{{infobox function |name=FinishEdit |object=Таблица |caption=Работа с редактированием |type=1 |status=2 |db=0 |exception=Невозможно...") |
m (1 revision imported) |
(No difference)
|
Revision as of 08:53, 7 February 2021
FinishEdit (Работа с редактированием) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция инициирует окончание редактирования ячейки таблицы в указанном режиме. Работает для визуальных таблиц, для которых активен режим редактирования ячейки. Функция не ожидает результата действия, возвращаясь сразу после вызова. При определенных условиях, в окончании режима редактирования может быть отказано. Функция может быть вызвана для таблиц, где режим редактирования в данный момент не активен, в этом случае, никаких действий выполнено не будет.
Синтаксис
Tab.FinishEdit(<Режим окончания редактирования (INT)>,<Индекс выделенного столбца после окончания редактирования или ноль (INT,STRING)>)
Аргументы
<Режим окончания редактирования (INT)>
- (необязательный аргумент) Возможны следующие значения:- 0 -- принять результат редактирования после окончания редактирования.
- 1 -- (по умолчанию) отменить редактирование и отказаться от принятия редактирования после окончания редактирования.
<Индекс выделенного столбца после окончания редактирования или ноль (INT,STRING)>
- (необязательный аргумент) Задает либо наименование, либо индекс столбца, который будет выделен, как текущий после выполнения действий для окончания редактирования. Если задан 0, будет выполнено изменение текущего столбца, если это необходимо в контексте редактирования таблицы. Особые условия, связанные с изменением текущего столбца при выполнении функции:
- Если происходит принятие результата редактирования (первый аргумент равен 1), и индекс нового столбца не задан, система произведен действия по своему усмотрению (будет выбран следующий столбец в цепочке столбцов редактирования и будет инициировано его редактирование).
- Если происходит принятие результата редактирования (первый аргумент равен 1), и индекс нового столбца задан, система сначала выполнит окончание редактирования, если окончание удачное, будет активирован указанный столбец и инициирована попытка начать редактирование ячейки этого столбца, если же окончить редактирование не удалось текущий столбце изменен не будет, его редактирование будет продолжено.
- Если происходит отмена принятия результата редактирования (первый аргумент равен 0), и отменить редактирование не получилось, либо индекс нового столбца не задан, текущий столбец не будет изменен.
- Если происходит отмена принятия результата редактирования (первый аргумент равен 0), индекс нового столбца задан, и отмена редактирования выполнена успешно, система изменит текущий столбец на заданный, инициирование начала редактирования ячейки нового столбца произведено не будет.
Примеры
//Ниже показан пример обработчика события OnAfterEditCell для визуальной таблицы MainTab:=Form.MainTab.Value; MainTab.CurLine:=MainTab.SelectedLine; //Если происходит окончание редактирования ячейки в столбце "КодКлиента", найдем // клиента по коду и пропустим столбец "Клиент" (так как он уже заполнен) и перейдем к редактированию столбца "Сумма" If MainTab.SelectedColumnName=uppercase("КодКлиента") Then Код:=Value; аЭл:=глНайтиПоКоду("кнтКонтрагенты",Код); If аЭл=0 Then Box("Контрагента с таким кодом не существует!",Q_STOP); Exit; EndIf; If аЭл.IsFolder() Then Box("Введенному коду соответствует папка контрагентов!",Q_STOP); Exit; EndIf; //Обновим сохраняемое значение (ведущие нули при вводе были пропущены) Value:=аЭл.Code; MainTab.КодКлиента:=Value; //Заполним следующий столбец "Клиент" MainTab.Клиент:=аЭл; //Вызовем успешное завершение редактирования и автоматическую инициацию редактирования столбца "Сумма" MainTab.FinishEdit(1,"Сумма"); EndIf;