super()在哪里调用?

Ant*_*ake 2 x++ axapta dynamics-ax-2009

在表单数据源(SalesLine)上,我有一个validateWrite方法,该方法又调用super()方法来调用validateWriteSalesLine表上的方法,以及其他检查.

在SaleLine表中,我有自定义功能,用于记录,有时停止数据更改.

当我从新表单写入SalesLine时,我不希望触发此功能.因此,我想validateWrite在SalesLine表的方法中检查一个条件,以确定是否从validateWrite我的新表单调用.如果从我的新表单调用SalesLine写入,这将允许我跳过数据更改记录/停止.

什么是正确的方法?

我可以创建一个布尔值recordSaveChecks并在调用之前设置它SalesLine.write(),但是有更好的方法吗?

编辑:为了澄清,我没有要添加的表单特定的自定义验证,我有一个系统范围的验证(因此坐在SaleLine表上),当从1个特定表单调用时需要跳过它.

小智 6

最佳选择可能是将特定于表单的自定义移动到表单的数据源而不是表本身.但是如果你真的想要向表中添加特定于表单的代码,你可以在Tables\Address.update()中看到一个例子,它检查this.dataSource().formRun().name()以确定它是否有从相关表格中被调用.