Events for non-query forms
This list outlines the sequences of events during form execution for non-query forms.
- Form initialization
StdFormPredisplay is always the first event to fire. At this point, the components are all created, and the caches, if any, exist and are initialized, but have not yet been loaded with data.
Depending on the initial command, the events generated vary:
- Refresh (after the
refresh is performed):
- StdFormLoadBoundValues
- StdFormLoadDerivedValues
- StdObjectRefreshCompleted
- New (after the new is
performed)
- tdFormLoadBoundValues
- StdFormLoadDerivedValues
- StdObjectNewCompleted
- Filter (by query):
- StdFormLoadBoundValues
- StdFormLoadDerivedValues
- Meanwhile, the filter form is launched; nothing further occurs until the user finishes with the filter form.
- FilterInPlace
- The form enters filter-in-place mode
- The normal events are generated once the user cancels or executes the filter-in-place.
- Default (initialize with
auto-insert new if new is enabled)
- StdFormLoadBoundValues
- StdFormLoadDerivedValues
- StdObjectNewCompleted (only if new is enabled and the auto-insert new took place)
- Event custom (as defined by the developer)
- Refresh (after the
refresh is performed):
- New, including auto-insert
new
- StdObjectNew
- StdFormGetBoundValues
- StdFormPerformValidations
- StdFormValidationsCompleted (at this point, the new object is actually inserted into the cache, and becomes the current object)
- StdFormLoadBoundValues
- StdFormLoadDerivedValues
- StdObjectNewCompleted
- Delete
Due to navigating away from unmodified auto-insert row
- StdFormLoadBoundValues
- StdFormLoadDerivedValues
- StdObjectDeleteCompleted
Marking existing record deleted
- StdObjectDelete
- StdFormGetBoundValues
- StdObjectDeleteCompleted
Deleting new record
- StdObjectDelete
- StdFormGetBoundValues
- StdFormLoadBoundValues
- StdFormLoadDerivedValues
- StdObjectDeleteCompleted
- Navigation (substitute
"Previous", "First", or "Last" for Next for those cases):
- StdObjectNext
- StdFormGetBoundValues
- StdFormPerformValidations
- StdFormValidationsCompleted
- StdFormLoadBoundValues
- StdObjectNextCompleted
- Refresh
- StdObjectRefresh
- StdFormGetBoundValues
- StdFormLoadBoundValues
- StdObjectRefreshCompleted
- RefreshCurrent
- StdObjectRefreshCurrent
- StdFormGetBoundValues
- StdFormLoadBoundValues
- StdFormLoadDerivedValues
- StdObjectRefreshCurrentCompleted
- Filter by query
- StdFormFilter
- Variety of events from query form
- StdFormCalledFormReturned
- (Query form)StdFormClose
- If query form returns
OK:
- StdObjectRefresh
- StdFormGetBoundValues
- StdFormLoadBoundValues
- StdFormLoadDerivedValues
- StdObjectRefreshCompleted
- Filter in place
- Ending with Execute:
- StdFormFilterInPlaceBegin
- StdFormGetBoundValues
- StdFormFilterInPlaceExecute
- StdFormGetBoundValues
- StdFormLoadBoundValues
- StdFormLoadDerivedValues
- StdObjectRefreshCompleted
- Ending with Cancel:
- StdFormFilterInPlaceBegin
- StdFormGetBoundValues
- StdFormFilterInPlaceCancel
- StdFormGetBoundValues
- StdFormLoadBoundValues
- StdFormLoadDerivedValues
- Ending with Execute:
- Form close: StdFormClose
- Focus change from one
component to another, whether by keyboard or mouse:
- If there is a lose focus
event specified for the component losing focus, and if the previously current
component's data is modified, then the following occurs for the previously
current component:
If the component has the Validate Immediately attribute:
- Move the value to the data source if variable- or standard-object bound, but without refreshing dependents of data source.
- Run validators; if
this succeeds, then the component modified flag is turned off.
- Notify dependents of component to refresh themselves.
- Place the value to the data source again (for variable- or standard-object-bound components), this time refreshing dependents of data source.
- If there was no validation error, and data changed event specified, generate the data changed event.
- If there is a gain focus event specified for the component receiving the focus, the gain focus event is generated.
- If there is a lose focus
event specified for the component losing focus, and if the previously current
component's data is modified, then the following occurs for the previously
current component:
- Data modification to a
component:
- If the modification is
"immediate" (selection from a drop-down, selection change in a list box, or
clicking a check box or radio button):
- Component is marked modified.
- If the component is standard-object-bound, then the current object is marked modified.
- If the component has the validate immediately attribute:
- Move the value to the data source if variable- or standard-object-bound, but without refreshing dependents of data source.
- Run validators; if this
succeeds, then the component modified flag if turned off.
- Notify dependents of component to refresh themselves.
- Place the value to the data source again (for variable- or standard-object-bound components), this time refreshing dependents of data source.
- If there was no validation error, and data changed event specified, generate the data changed event.
- Otherwise: no events are
generated, but the following flags are adjusted:
- Component is marked modified.
- If the component is standard-object-bound, then the current object is marked modified.
- If the modification is
"immediate" (selection from a drop-down, selection change in a list box, or
clicking a check box or radio button):