Студия/OnAfterEditCell
OnAfterEditCell (Визуальные события) | |||||||
---|---|---|---|---|---|---|---|
|
Событие, возникающее до начала редактирования ячейки таблицы. Позволяет запретить или разрешить редактирование ячейки.
Аргументы
<IsChanged (INT)>
- Переменная принимает значение 1, если в редактируемой ячейке были произведены изменения, иначе она принимает значение 0.<Value>
- (возможен аргумент-переменная (ByRef)) Новое значение редактирования, которое будет записано в ячейку таблицы. Значение можно изменить в данной обработчике.<Result (INT)>
- (возможен аргумент-переменная (ByRef)) Переменная результата может принимать значения:- 0 (по умолчанию) -- Разрешить принятие изменений.
- 1 -- Запретить принятие изменений (фокус останется в поле редактирования).
Примеры
//Пример обработчика OnAfterEditCell aEl:=Form.Object; MainTab:=Form.MainTab.Value; MainTab.CurLine:=MainTab.SelectedLine; //В зависимости от столбика, в котором происходило редактирование, выполнить нужное действие после окончания редактирования ячейки if MainTab.SelectedColumnName=uppercase("КодНоменклатуры") Then //Изменен код номенклатуры, найдем номенклатуру if not глПриИзмененииКодаНоменклатуры(aEl,Value) Then Result:=1; Exit; EndIf; Form.CallOnStatusChange(); Elseif MainTab.SelectedColumnName=uppercase("Номенклатура") Then //Изменена номенклатура MainTab.Номенклатура:=Value; Form.CallOnStatusChange(); Elseif MainTab.SelectedColumnName=uppercase("Количество") Then //Изменено количество MainTab.Количество:=Value; ... MainTab.Сумма:=MainTab.Цена*Value; Value:=MainTab.Количество; Form.CallOnStatusChange(); Elseif MainTab.SelectedColumnName=uppercase("Цена") Then //Изменена цена MainTab.Цена:=Value; MainTab.Сумма:=MainTab.Количество*Value; Form.CallOnStatusChange(); Elseif MainTab.SelectedColumnName=uppercase("Сумма") Then //Изменена сумма MainTab.Сумма:=Value; MainTab.Цена:=?(MainTab.Количество=0,Value,Value/MainTab.Количество); Form.CallOnStatusChange(); EndIf;