Axapta 对数据源AX2012的方法使用cacheAddMethod

Axapta 对数据源AX2012的方法使用cacheAddMethod,axapta,x++,dynamics-ax-2012-r3,Axapta,X++,Dynamics Ax 2012 R3,有一个表单有两种显示方法。所以表单加载速度很慢。我搜索并找到了这条路 public void init() { super(); MyTable_DS.cacheAddMethod(tableMethodStr(MyTable, dispCreditBalance)); } 但我的显示方法不在“表方法”节点中。表单->数据源->表格->方法节点下的我的方法。所以tableMethodStr看不到我的方法 在这种情况下如何使用此cacheAddMethod?不支持表单显示方法的缓

有一个表单有两种显示方法。所以表单加载速度很慢。我搜索并找到了这条路

public void init()
{
    super();
    MyTable_DS.cacheAddMethod(tableMethodStr(MyTable, dispCreditBalance));
}
但我的显示方法不在“表方法”节点中。表单->数据源->表格->方法节点下的我的方法。所以tableMethodStr看不到我的方法


在这种情况下如何使用此cacheAddMethod?

不支持表单显示方法的缓存。您可以尝试启用表单字段的“CacheDateMethod”属性,但我认为它不会起作用

如果可能(不依赖于表单变量),将显示方法移动到表中并从表单中删除


一种解决方法是使用映射来存储结果,并且仅在需要时在映射中找不到时重新计算。您可以在中的粘贴栏中看到一个示例。

@Mumble您也可以使用
SysClientCacheDataMethodAttribute
。例如,请参见
\Data Dictionary\Tables\CustInvoiceTable\Methods\displayCorrectionState
。当然,在表显示方法上,而不是表单显示方法上。是的,我同意您的建议,将其移动到表中并使用该属性。