gotFocus并在Form字段上输入方法未被调用

Ben*_*man 6 x++ axapta dynamics-ax-2009

我的销售订单表(SalesTable)中有一些字段需要在另一个字段设置为特定值时被禁用.为此,我覆盖了表单字段上的enter和gotFocus方法(我做了两个测试).代码编译并没有任何问题.

我的问题是,当我单击相应网格列中的字段时,这些被覆盖的方法都不会被调用.什么会导致在网格字段上不调用enter和gotFocus方法?

Jan*_*sen 8

不要使用gotFocusenter方法.

创建一个数据源方法来进行更改:

void setAllowEdit()
{ 
    salesTable_ds.object(fieldnum(SalesTable, Name)).allowEdit(salesTable.SalesType == SalesType::Journal);
}
Run Code Online (Sandbox Code Playgroud)

active方法中调用方法:

public int active()
{
    int ret = super();
    ...
    this.setAllowEdit()
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

从数据源字段(在本例中为SalesType字段)调用方法:

public void modified()
{
    super()
    salesTable_ds.setAllowEdit()
    element.changeType(); // standard code
}
Run Code Online (Sandbox Code Playgroud)