Справочное руководство по TDMS 5.0 API
FormTableAttributeChange Event
Смотри также  Послать замечания
pForm
Форма ввода, атрибуты которой редактируются.
pObject
Объект, которому принадлежит форма ввода. Если форма открыта методом ThisApplication.InputForms("FRM_ID").Show, значение аргумента pObject = Nothing.
pTableAttribute
Табличный атрибут
pTableRow
Ссылка на строку таблицы, в которой производилось редактирование.
ColumnAttributeDef
Дескриптор типа атрибута для столбца таблицы, в котором производилось редактирование. Ссылка на тип атрибута TDMSAttributeDef может быть получена так:
Set AttrDef = ThisApplication.AttributeDefs.Item(hColumnAttributeDef).
pOldTableRow
Ссылка на строку таблицы с предыдущим состоянием (до редактирования)
bCancel
TRUE - отменить редактирование поля таблицы (вернуть предыдущее значение).
TDMSApplication Объект : FormTableAttributeChange Event

Glossary Item Box

Описание

Генерируется после изменения значения любого поля табличного атрибута при переключении фокуса ввода на другой элемент.

Определение

Visual Basic
Public Event FormTableAttributeChange( _
   ByVal pForm As TDMSInputForm, _
   ByVal pObject As TDMSObject, _
   ByVal pTableAttribute As TDMSAttribute, _
   ByVal pTableRow As TDMSTableAttributeRow, _
   ByVal ColumnAttributeDef As Variant, _
   ByVal pOldTableRow As TDMSTableAttributeRow, _
   ByRef bCancel As Boolean _
)

Параметры

pForm
Форма ввода, атрибуты которой редактируются.
pObject
Объект, которому принадлежит форма ввода. Если форма открыта методом ThisApplication.InputForms("FRM_ID").Show, значение аргумента pObject = Nothing.
pTableAttribute
Табличный атрибут
pTableRow
Ссылка на строку таблицы, в которой производилось редактирование.
ColumnAttributeDef
Дескриптор типа атрибута для столбца таблицы, в котором производилось редактирование. Ссылка на тип атрибута TDMSAttributeDef может быть получена так:
Set AttrDef = ThisApplication.AttributeDefs.Item(hColumnAttributeDef).
pOldTableRow
Ссылка на строку таблицы с предыдущим состоянием (до редактирования)
bCancel
TRUE - отменить редактирование поля таблицы (вернуть предыдущее значение).

Заметки

1. Событие является отменяемым: если параметру bCancel присвоено значение TRUE, любое изменение значения атрибута будет немедленно отменено при потере фокуса ввода элементом формы. Т.е. при переходе в другое поле старое значение измененного атрибута будет тут же восстановлено.

2. Событие наступает сразу после события FormAttributeChange. Если событие FormAttributeChange было отменено (bCancel=TRUE), то данное событие будет генерироваться, но после его обработки старое значение поля табличного атрибута будет восстановлено.

3. При редактировании полей таблицы данные на сервере обновляются немедленно. Важно: с учетом сказанного, при закрытии Окна свойств объекта без сохранения изменений табличные атрибуты к первоначальному состоянию не возвращаются (в отличие от всех остальных атрибутов, начальные значения которых будут восстановлены).

4. В процессе редактирования полей таблицы можно восстановить только предпоследнее значение поля. Это можно сделать отменой событий FormAttributeChange или FormTableAttributeChange, а также через скрипт (старое значение отредактированного поля передается через параметр pOldAttribute обработчика события).

5. Обработчик может быть размещен в скриптах формы ввода, профиля и/или общесистемном (см. рисунок). Если обработчики определены на всех уровнях, то последовательность их вызова такова:

  • скрипт формы ввода;
  • скрипт профиля пользователя;
  • общесистемный скрипт.

Если на каком-либо уровне событие было отменено (параметру bCancel присвоено значение TRUE), то обработчики события, размещенные на последующих уровнях, вызваны не будут.

6. Схему последовательности генерации событий при редактировании атрибутов объекта в окне свойств см. на рисунке.

7. Событие не генерируется при удалении строк таблицы, а также при редактировании значений ячеек через API.

Пример

Смотри также

© 2016 CSoft Development. Все права защищены.