Синтаксис
PROPERTY [RW, NE] OnChangeIndex: SCAL[2]; |
Описание
Флаг включения программного события "смена индекса сортировки записей в
зоне". По умолчанию сброшен. Соответствует флагу "ChangeIndex" в свойствах зоны
в WED.
Непрерываемое
программное событие
перерисовки окна уровня зоны OnChangeIndex вызывается при позиционировании в
мастере зоны во время работы видеоконформа.
Предназначено для настройки свойств собственного окна и связанных с ним окон на
основе нового индекса сортировки зоны.
Данное событие возникает в любой зоне любого открытого окна если:
- происходит смена индекса сортировки записей в зоне. Это может быть
- в результате явных действий пользователя: выбора нового индекса сортировки
в активной зоне верхнего окна с помощью опций
PrvKey (традиционно на клавише
Left) и NxtKey (традиционно
на клавише Right), либо мышью.
- в результате выполнения в ASL-программе процедуры
SE_WZD_CURSOR, которая подменила текущий индекс в курсоре зоны
- в результате модификации в ASL-программе свойств
FORM_FIELD.Expression,
FORM_ZONE.BanHierarchicView и т.п., что в некоторых
случаях приводит к смене индекса сортировки в зоне
- в зоне не был определен текущий индекс сортировки и теперь он
определяется. Это может быть
- в активной зоне при первом открытии окна. При последующих открытиях окна
ключ не меняется и событие не возникает
- каждый раз, когда определяется селект в глубоко подчиненной зоне окна.
Предположим зона Z1 подчинена окну, зона Z2 подчинена зоне Z1, зона Z3
подчинена зоне Z2. Выполняется опция View(Window 1). Если в зоне 1 имеется
текущая запись, то в зоне 2 определяется селект, а в зоне 3 селект не
определяется. В результате событие "смена индекса" будет в зонах 1 и 2, но
не в зоне 3. Далее выполняем View(. 2), т.е. переходим в зону 2. Если в зоне
имеется текущая запись, то в этот момент селект определяется в зоне 3 и в
ней будет событие "смена индекса". Затем выполняем View(. 1), т.е.
возвращаемся в зону 1 - в зоне 3 селект пропал, событие в этом случае не
возникает. Снова выполняем View(. 2), т.е. переходим в зону 2. В этот момент
в зоне 3 снова определяется селект и в ней снова будет событие "смена
индекса".
Событие "смена индекса сортировки" не возникает если:
- изменяется ручной отбор записей (ручной селект) в пределах текущего
индекса (традиционно на кнопках AltI-Tab)
- при перемещениям по записям зоны
- в начале-окончании видео-процессов в зоне
Особенности работы такой программы:
- RTI.StartMode=8
-
Вызывается после смены индекса в зоне.
- Смена индекса сортировки может быть и в условиях отсутствия записей в
зоне, поэтому ACCESS может вернуть 0.
- Если в программе обработки данного события изменить индекс сортировки
или позицию в курсоре зоны, для которой это событие вызвано, то повторно
события "смена индекса" и "смена позиции" для
этой зоны не вызываются.
Программное событие появилась в версии
14.99.3, данное свойство появилось в версии 14.101.15.