Difference between revisions of "Студия/OnAfterEditCell"
m (1 revision imported) |
|
(No difference)
| |
Latest revision as of 07:55, 7 February 2021
| 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;