开发AX的界面(FORM)时,要特别注意界面在不同情况下,各内置方法的执行顺序。界面的内置方法,主要分布在下述几种情况中:打开界面,关闭界面,离开某个控件,离开某条记录,焦点事件,创建新记录,保存新增记录,修改记录,保存修改记录,删除记录。
打开界面的方法顺序(注:在AXAPTA3.0里,DataSource.Init()早于Form.Init()触发)

关闭界面的方法顺序

离开一个控件的方法顺序

离开一条记录的方法顺序

创建一条新记录的方法顺序:DataSources: create -> selectControl -> docCursor -> DataSources: cursorNotify -> DataSources: initValue -> Table: initValue -> DataSources: leaveRecord -> DataSources: cursorNotify -> selectControl -> DataSources: refresh -> docCursor -> activate -> DataSources: activate -> DataSources: refresh -> docCursor
保存新增记录的方法顺序:DataSources:Fields: validateWrite -> Table: validateWrite -> DataSources: write -> Table: insert -> Table: aosValidateInsert -> DataSources: leaveRecord -> DataSources: cursorNotify -> DataSources: refresh -> DataSources: active -> DataSources: refresh -> docCursor -> activate -> docCursor
修改一条记录的方法顺序:activate -> Table: validateField -> DataSources:Fields: modified -> Table: modifiedField -> DataSources: refresh
保存修改记录的方法顺序:DataSources:Fields: validate -> Table: validateField -> DataSources:Fields: modified -> Table: modifiedField -> DataSources: validateWrite -> Table: validateWrite -> DataSources: write -> Table: update -> Table: aosValidateUpdate -> DataSources: leaveRecord -> DataSources: cursorNotify -> DataSources: refresh -> DataSources: active -> DataSources: refresh -> docCursor -> activate -> docCursor
删除一条记录的方法顺序:DataSources: delete -> DataSources: cursorNotify -> DataSources: validateDelete -> Table: validateDelete -> 对话框:yes -> docCursor -> activate -> docCursor -> activate -> Table: delete -> Table: aosValidateDelete -> DataSources: cursorNotify -> DataSources: leaveRecord -> DataSources: refresh -> DataSources: active -> DataSources: refresh -> docCursor