3.3.8. Паскаль события¶
3.3.8.1. Справочник¶
3.3.8.1.1. События построения формы¶
Управление дополнительными ресурсами и данными при открытии формы.
-
OnLoadMeta¶ Frames: все Mandatory: нет При открытии фрейма, после загрузки метаданных. Можно использовать для внесения изменений в метаданные.
-
OnUnloadMeta¶ Frames: все Mandatory: нет При закрытии фрейма.
-
OnControllerCreated¶ Frames: все Mandatory: нет Сразу после того, как был создан фрейм отображения выборки. Это вовсе не означает, что
Selection.Controllerбудет содержать объект, так как у некоторых фреймов нет контроллера, например, уChart.Эта операция аналогична
OnShow, но срабатывает в том числе и при открытии интерфейсных элементов формы, которые были скрыты при открытии формы (например, закладки, которые не были первыми в перечне закладок).
-
BeforeClose¶ Frames: все Mandatory: нет Перед закрытием выборки.
-
AfterClose¶ Frames: все Mandatory: нет После закрытия выборки.
3.3.8.1.2. События обработки данных¶
Управление строками в хранилище строк.
-
InsertItem¶ Frames: все Mandatory: нет При добавлении записи (например, при добавлении строки в Grid, Tree).
-
DeleteItem¶ Frames: все Mandatory: нет При удалении записи (например, при удалении строки из Grid, Tree).
-
BeforeEdit_before¶ Frames: все Mandatory: да, для изменения данных В момент начала редактирования записи, перед BeforeEdit.
-
BeforeEdit¶ Frames: все Mandatory: да, для изменения данных В момент начала редактирования записи.
-
AfterEdit¶ Frames: все Mandatory: нет В момент выхода из режима редактирования записи.
3.3.8.1.3. Сеттеры¶
При изменении значений полей выборки. Используются для программирования бизнес логики.
3.3.8.1.4. Визуальные события¶
Реакция на пользовательские действия.
-
OnShow¶ Frames: все Mandatory: нет Перед показом фрейма.
See also
-
OnFrameActivated¶ Frames: Grid, Tree, HTML Mandatory: нет При получении фокуса фреймом.
-
OnCloseFormQuery¶ Frames: все Mandatory: нет Перед закрытием фрейма до операций
CloseFormOKиCloseFormCancel, давая возможность отменить закрытие фрейма.Флаг закрытия фрейма передается в результат операции:
Result := False;- отменить закрытиеResult := True;- продолжить закрытие
В случае, если в выборке был не модально открыт файл через
BlobOpenEx2и не был закрыт до закрытия формы, то при отсутствии операцииOnCloseFormQueryпользователю будет показан стандартный диалог, иначе будет вызвана операция.
-
CloseFormOK¶ Frames: все Mandatory: нет При успешном завершении и закрытии диалогового окна.
-
CloseFormCancel¶ Frames: все Mandatory: нет При отмене/безуспешном завершении диалогового окна.
-
OnFocusedFieldChanged¶ Frames: все Mandatory: нет После перехода фокуса ввода в списке или дереве с одного столбца на другой, а также при переходе с контрола на контрол в карточке или панели фильтров.
-
OnFocusedCellChanged¶ Frames: Grid, Tree Mandatory: нет После перехода фокуса ввода в списке с одной ячейки на другую.
-
OnBeforeCreateEditor¶ Frames: Grid, Tree Mandatory: нет При начале редактирования ячейки, как при создании редактирующего контрола, так и просто при изменении значения, например, у Checkbox-а.
-
OnShowEditor¶ Frames: Grid, Tree Mandatory: нет При показе редактирующего контрола (после
OnBeforeCreateEditor). Если редактирующего контрола нет (например, при изменении значения CheckBox-а), то операция не выполняется.
-
OnShowCellComment¶ Frames: Grid, Tree Mandatory: нет При показе комментария ячейки.
-
SelectedRecordsChanged¶ Frames: Grid, Tree Mandatory: нет После изменения набора выделенных записей.
-
OnColumnHeaderClick¶ Frames: Grid Mandatory: нет При клике на заголовок колонки.
-
OnAfterNodeOpen¶ Frames: Tree Mandatory: нет После раскрытия узла в дереве.
3.3.8.1.5. События обработки зависимостей¶
3.3.8.1.6. Навигационные события по данным¶
3.3.8.1.7. Навигационные события по виду¶
-
CheckWorkability¶ Frames: все Mandatory: нет Базовая операция, предназначенная для актуализации состояния операций выборок, доступности к редактированию ее атрибутов. В данной операции крайне не рекомендуется использовать SQL блоки.
Вызывается автоматически в следующих случаях:
- при открытии выборки (
AfterOpen); - при переходе с записи на запись (
AfterScroll); - при обновлении выборки (
AfterRefresh); - при применении фильтра (клиентского или серверного) (
ApplyFilter); - при отмене фильтра (клиентского или серверного) (
ResetFilter); - после выполнения операции, для которой установлено свойство
CWAAfter("выполнять операцию применимости после операции").
В некоторых случаях вызовы блокируются:
- когда происходит обновление мастера, у деталей происходит блокировка (кроме неактивных закладок, они закрываются), вызов происходит после завершения обновления мастера;
- при вставке в грид текста или таблиц из Excel;
- при множественном выделении в дереве и гриде, вызов происходит после выделения.
- при открытии выборки (
Frames: HTML Mandatory: нет Перед переходом на другую страницу. Можно через
GetVar()узнать значение переменной NavigateURL# - адрес перехода.NavigateURL# можно изменить, тогда будет открыт браузер в новом окне по этой ссылке.
3.3.8.1.8. События запроса данных¶
-
BeforeOpen¶ Frames: все Mandatory: нет Перед выполнением запроса
GetSqlText.See also
-
BeforeGetSqlText¶ Frames: все Mandatory: нет Непосредственно перед вызовом
GetSqlText.See also
-
GetSqlText¶ Frames: все Mandatory: да Запрашивает данные по указанному SQL-запросу.
-
AfterOpen¶ Frames: все Mandatory: нет Сразу после
GetSqlText.See also
-
AfterGetSqlText¶ Frames: все Mandatory: нет После
GetSqlText(не непосредственно).See also
-
RefreshItem¶ Frames: все Mandatory: нет Обновляет одну запись.
3.3.8.1.9. События фильтра¶
-
OnFilterInit¶ Frames: все Mandatory: нет При инициализации фильтра, сразу после
OnLoadMeta. Возвращаемое значение (Variant) будет передаваться входным параметром при последующих вызовах операцийOnApplyFilter,OnResetFilterиOnAddSelectedRecToFilter.
-
OnApplyFilter¶ Frames: все Mandatory: нет Перед применением универсального фильтра выборки. Текст запроса, указанный в поле WhereMacro возвращаемого объекта будет приписан к имеющемуся макросу универсальной фильтрации.
Подробнее про события универсального фильтра: фильтрация серверная.
-
OnResetFilter¶ Frames: все Mandatory: нет Перед сбросом универсального фильтра выборки. Если возвращается результат, то он записывается вместо старого.
-
OnFilterFinalize¶ Frames: все Mandatory: нет При деинсталяции фильтра, непосредственно до
OnUnloadMeta. Возвращение значения не предполагается.
-
OnAddSelectedRecToFilter¶ Frames: все Mandatory: нет Перед добавлением выделенных записей в условия фильтрации. Если возвращается непустой результат, то стандартное изменение запроса не производится (перекрывается). Запрос изменяется в соответствии с возвращенным значением.
3.3.8.1.10. Транзакционные события¶
Реакция на завершение или откат транзакции.
3.3.8.1.11. Валидационные события¶
3.3.8.1.12. События диаграммы Гантта¶
-
OnItemChanged¶ Frames: Gantt Mandatory: нет При окончании изменения размеров или перетаскивания элементов пользователем.
-
OnFocusedItemChanged¶ Frames: Gantt Mandatory: нет При выделении другого элемента.
-
OnLinkCreate¶ Frames: Gantt Mandatory: нет При добавлении связи между элементами.
-
OnLinkDelete¶ Frames: Gantt Mandatory: нет При удалении связи между элементами.
3.3.8.1.13. События планировщика¶
-
OnSelectionChanged¶ Frames: Scheduler Mandatory: нет При изменении выделения.
-
OnEventSelectionChanged¶ Frames: Scheduler Mandatory: нет При выделении события, щелчке на нём или снятии выделения с события.
Frames: Scheduler Mandatory: нет При изменении выделенного (отображаемого) промежутка времени.
Frames: Scheduler Mandatory: нет При изменении временного промежутка, отображаемого в уменьшенном виде на календаре в правой части планировщика.
-
OnEventAdd¶ Frames: Scheduler Mandatory: нет При создании события.
-
OnEditEvent¶ Frames: Scheduler Mandatory: нет При изменении события.
-
OnDeleteEvent¶ Frames: Scheduler Mandatory: нет При удалении события.
3.3.8.1.14. Перетаскивание строк и ячеек¶
-
OnCanStartDrag¶ Frames: Grid, Tree Mandatory: нет При начале перетаскивания строки с фрейма в ручном режиме. Эта возможность регулируется свойством фрейма "Перетаскивание строк с фрейма" (CanDragRows).
-
OnDragOver¶ Frames: Grid, Tree, AdvDiagram Mandatory: нет Во время перетаскивания строки с фрейма на фрейм в автоматическом режиме. Эта возможность регулируется свойствами:
- CanDragRows - для фрейма, с которого перетаскивается строка,
- CanDropRows - для фрейма, на который перетаскивается строка.
Операция будет выполняться для фрейма с установленным свойством CanDropRows = true во время перетаскивания строки, при каждом перемещении мышки над фреймом.
-
OnDragDrop¶ Frames: Grid, Tree, AdvDiagram Mandatory: нет При окончании перемещения строки на фрейм.
3.3.8.1.15. Прочие события¶
-
OnActivateEditor¶ Frames: все Mandatory: нет Если текущая выборка является выборкой выпадающего списка (LookupSelection), при ее открытии она пытается вызвать операцию
OnActivateEditorсвоей мастер-выборки, передавая туда себя в качестве параметра. Предполагается, что в этой операции можно будет задать значение свойства UniFilterMacrosRO выборки выпадающего списка, тем самым, ограничив ее.Таким образом, первый параметр операции - LookupSelection, второй - AttrName.
-
HandleEvents¶ Frames: все Mandatory: нет Обработчик событий из шины событий.
-
OnAfterBulkUpdate¶ Frames: Grid, Tree Mandatory: нет После вставки в список или древовидный список набора ячеек через буфер обмена из Excel.
-
OnClientFilterChanged¶ Frames: Grid Mandatory: нет При изменении клиентского фильтра в гриде.
-
OnFormActivatedAfterFindWindow¶ Frames: все Mandatory: нет Приходит при получении фокуса формой после её активации через вызов метода
CreateFormEx(), если была активирована уже существовавшая форма.
3.3.8.2. Порядок вызова¶
Пример порядка вызова операций при открытии и закрытии формы, состоящей из одного списка:
Открываем форму:
- ONLOADMETA
- ONFILTERINIT
- BEFOREOPEN
- ONAPPLYFILTER
- BEFOREGETSQLTEXT
- GETSQLTEXT
- AFTEROPEN
- CHECKWORKABILITY
- AFTERGETSQLTEXT
- ONSHOW
- ONFRAMEACTIVATED
Закрываем форму:
- ONCLOSEFORMQUERY
- ONFILTERFINALIZE
- ONUNLOADMETA
Сохранение пользовательских настроек в реестр происходит при закрытии датасета выборки.
Восстановление - после вызова метода OnShow, непосредственно перед отрисовкой.