Axapta 如何在table方法的委托中获取common.orig()?

Axapta 如何在table方法的委托中获取common.orig()?,axapta,x++,dynamics-ax-2012,Axapta,X++,Dynamics Ax 2012,让我们用字符串字段创建表。您可以像这样覆盖update()方法: public void update() { //check begin if (this.orig().Field != this.Field) { info('Changed'); } //check end super(); } 是否可以创建执行检查的代理?委托必须完全匹配方法参数,并且这里没有任何参数,或者他们可以使用XppPrePostA

让我们用字符串字段创建表。您可以像这样覆盖update()方法:

public void update()
{
    //check begin
    if (this.orig().Field != this.Field)
    {
        info('Changed');        
    }
    //check end

    super();
}
是否可以创建执行检查的代理?委托必须完全匹配方法参数,并且这里没有任何参数,或者他们可以使用XppPrePostArgs,但我看不到如何从中获取_common_uu和common.orig()

如何在table方法的委托中获取common.orig()?可能吗


我使用的是Microsoft Dynamics AX 2012。

表方法上不能有委托,但可以有事件处理程序。见:

您只需在table update方法上放置一个事件前处理程序,然后使用
xppPrepostArgs
,如下所示:

public static void updatePreEventHandler(xppPrepostArgs _args)
{
    CompanyInfo         companyInfo = _args.getThis();
    // Common              common      = _args.getThis(); // Alternatively

    if (companyInfo.orig().Name != companyInfo.Name)
    {
        info('Changed');
    }
}

将其设置为post事件处理程序将不起作用,因为buffer和buffer.orig()现在是相同的。