优化显示方式
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,因为在大多数情况下,日志编号不会因交易而改变。
在像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,因为在大多数情况下,日志编号不会因交易而改变。