Справочное руководство по TDMS 7.0 API
FormAttributeChange Событие
Смотри также  Пример  Отправить замечание
pForm
Форма ввода, атрибуты которой редактируются.
pObject
Объект, которому принадлежит форма ввода. Если форма открыта методом TDMSInputForm.Show Метод, значение аргумента pObject = Nothing.
pAttribute
Ссылка на атрибут, значение которого было изменено.
bCancel
TRUE - отменить изменение значения атрибута.
pOldAttribute
Предыдущее значение атрибута (до наступления события).
TDMSApplication Объект : FormAttributeChange Событие

Glossary Item Box

Описание

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

Опеделение

Visual Basic
Public Event FormAttributeChange( _
   ByVal pForm As TDMSInputForm, _
   ByVal pObject As TDMSObject, _
   ByVal pAttribute As TDMSAttribute, _
   ByRef bCancel As Boolean, _
   ByVal pOldAttribute As TDMSAttribute _
)

Параметры

pForm
Форма ввода, атрибуты которой редактируются.
pObject
Объект, которому принадлежит форма ввода. Если форма открыта методом TDMSInputForm.Show Метод, значение аргумента pObject = Nothing.
pAttribute
Ссылка на атрибут, значение которого было изменено.
bCancel
TRUE - отменить изменение значения атрибута.
pOldAttribute
Предыдущее значение атрибута (до наступления события).

Заметки

1. При изменении значения любых атрибутов (кроме табличных) информация в базе данных не обновляется немедленно, а хранится локально. Таким образом, при многократном изменении значения атрибута все промежуточные данные не хранятся, кроме первоначального, предпоследнего и последнего (эти два передаются обработчику в качестве аргументов). Фактическое изменение значения атрибута производится после наступления события TDMSApplication.ObjectBeforeModify Событие (выполняется проверка уникальности и наличия данных, если требуется, а затем обновляется таблица атрибутов на сервере).

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

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

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

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

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

5. Для того, чтобы событие генерировалось при работе через API, должен быть включен вызов объектных событий в Окне свойств базы данных (см. рисунок).

Пример

VB Script (Visual Basic)Скопировать код
'======================================================================
'Текст обработчика может быть размещен в скрипте формы, профиля или
'общесистемном скрипте.

Sub Form_AttributeChange(Form, Obj, Attribute, Cancel, OldAttribute)
            'Запросить подтверждение изменения атрибута
     msg = "Вы действительно хотите заменить значение атрибута " & Attribute.Description & _
                 Chr(13) & " со старого значения """ & OldAttribute.Value & """ на новое """ & _
                 Attribute.Value & """?"
        If ((MsgBox(msg, vbYesNo + vbQuestion, "Подтверждение изменений")) <> VbYes) Then
                Cancel = True
        End If
End Sub
'======================================================================

Смотри также

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