Difference between revisions of "Студия/OnAfterEdit"

From SunFlurry wiki
Jump to: navigation, search
(Created page with "{{infobox function |name=OnAfterEdit |element=Внедренная электронная таблица |caption=Визуальные события |eventtype=Прерыва...")
 
m (1 revision imported)
 
(No difference)

Latest revision as of 08:55, 7 February 2021

  OnAfterEdit (Визуальные события)
Применимость:Внедренная электронная таблица
Тип события:Прерывающее
Статус разработки: Реализована

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

Аргументы

  • <EditMode (INT)> - (возможен аргумент-переменная (ByRef)) Переменная описывает режим редактирования, может принимать следующие значения:
    • 0 -- Редактировался текст ячейки (объекта)
    • 1 -- Редактировался объект ячейки (объекта)
  • <ObjectType (INT)> - Переменная задает тип объекта, может принимать следующие значения:
    • -1 -- курсор выделяет ячейку таблицы.
    • больше или равна нулю -- задает тип объекта, на котором находится курсор. Для описания типов объектов, см. Object.Type.
  • <ObjectIndex (INT)> - Переменная задает индекс объекта, для которого выполняется операция, если операция выполняется для ячейки, переменная будет иметь значение -1.
  • <Line (INT)> - Переменная задает номер строки редактируемой ячейки. Если редактируется объект, переменная принимает значение -1.
  • <Column (INT)> - Переменная задает номер столбца редактируемой ячейки. Если редактируется объект, переменная принимает значение -1.
  • <IsChanged (INT)> - Переменная равна 1, если в процессе редактирования пользователь внес изменения в поле редактирования, иначе переменная равна 0.

Примеры

//Пример обработчика OnAfterEdit, записывающий изменения, сделанные в ячейке пользователем

Таб:=Form.Таблица.Value;
//Редактировали цену
If Column<>6 Then
  Exit;
EndIf;
//Значение -- номенклатура
зН:=Таб.Area(3,Line,3,Line).Value;
if _Or(isEmpty(зН),зН.IsFolder()) Then
  Exit;
EndIf;
  
О:=Таб.Area(6,Line,6,Line);
//Новое значение цены
Знч:=О.Value;
//Очистим значение, чтобы редактирование всегда начиналось с нуля, а не со старого значения
О.Value:=GetNothing();
If УстановитьЦену(зН,Form.оДата.Value,Знч,Form.оНов.Value) Then
  //Установим новый текст
  Таб.Area(6,Line,6,Line).Text:=FormatNumber(Знч,1,"",2);
EndIf;