优化显示方法

时间:2015-12-03 13:52:01

标签: axapta microsoft-dynamics dynamics-ax-2012 dynamics-ax-2012-r3

在LedgerJournalTransDaily等形式中,有一个从LedgerJournalTrans导入的字段Txt。  使用JournalNum,我需要转到LedgerJournalTable并获取Name字段。

我写过如下显示方法:

[SysClientCacheDataMethodAttribute(true)]
public display Name GetLedgerJournalTableName()
{
   LedgerJournalTable ledgerJournalTable;
   Name ret;

   select firstFast firstOnly ledgerJournalTable
       where ledgerJournalTable.JournalNum == this.JournalNum;

   ret = ledgerJournalTable.Name;

   return ret;
 }

说实话,我不确定这是否足够快,或者是否有另一种方法可以做到这一点。请给我一个提示。

2 个答案:

答案 0 :(得分:2)

如果需要考虑性能,您可以尝试将LedgerJournalTable作为只读数据源添加到包含OnlyFetchActive = Yes的表单,将其与LedgerJournalTrans数据源连接并添加{{ 1}}表单设计的新数据源的字段。

但是如果期刊没有数百行并且还没有性能问题,我会选择显示方法。如果它成为问题并且显示方法比新数据源的侵入性更小,您可以随时更改它。

如需进一步阅读,请查看Ivan Kashperuk撰写的Tutorial: Caching display methods

答案 1 :(得分:0)

您可以通过将选择部件移动到表格上的静态服务器方法以及选择您需要的定义字段来优化它。

public static server Name getJourName ... ... 从ledgerJournalTabel中选择名称 ...

此外,您还可以在缓存属性参数中设置false,因为在大多数情况下,日记帐编号对于事务不会更改。