Common Form Methods in MSD Axapta

Common Form Methods in Axapta

Only few of the form methods are needed in daily use. Having a basic knowledge of the execution order of these methods will help you a lot when starting making your modifications. The following methods are executed in the listed order when a form is opened and closed:
init() ► ds init() ► run() ► ds executeQuery() ► canClose() ► close()
1. FormRun.init() is the first method called. The super() call in FormRun.init() will call FormDataSource.init() for each data source used in the form query.
2. The super() call in FormRun.run() will call FormDataSource.executeQuery() for every data sources.
3. When closing the form FormRun.canClose() will validate whether the form may be closed, and if true FormRun.close() is called.
These are the most important methods executed when a form is opened and closed. Other methods are executed in the opening and closing sequences such as loading application user settings. However normally you will only need to override the listed methods.
For each data source in your form query, the following sequence will be triggered by executeQuery() when the form is opened:
ds executeQuery() ► refresh() ► active()
1. The data source method executeQuery() will fetch all records for the current data source and afterwards call refresh().
2. Refresh() is updating records fetched, and is normally not overridden. If you are inserting, updating of deleting records shown in a form from X++, refresh() can be called to have the changed data shown.
3. When opening the form, active() is executed for the current record. You can use active() for setting access restrictions for controls. Active() is called each time a record is selected.