优化显示方式

Optimize display method

在像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;
 }

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

如果性能是一个问题,您可以尝试将 LedgerJournalTable 作为只读数据源添加到具有 OnlyFetchActive = Yes 的表单中,将其与 LedgerJournalTrans 数据源连接并添加Name新数据源的字段到表单设计。

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

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

您可以通过将 select 部分移动到 table 上的静态服务器方法来优化它,并且当您 select 定义您实际需要的字段时。

public 静态服务器名称 getJourName... ... select 来自 ledgerJournalTabel 的名称 ...

您也可以在缓存属性参数中设置 false,因为在大多数情况下,日志编号不会因交易而改变。