3

我有一个标题/行类型的对象(想想 SalesTable/PurchTable),在标题上我有两个计算的显示方法,“总数量”和“总发票”。

我想添加一个简单的显示“Fully Invoiced”,这是一个返回的显示方法:

return this.TotalQty() == this.TotalInvoiced();

问题是再次调用两个显示方法计算,这可能会影响 ListPages 的性能。

有没有办法制作一个使用缓存值的表单方法,这样我就不必调用额外的计算,也不必创建表列?

4

1 回答 1

3

据我所知,没有办法访问为代码中的显示方法缓存的值。

您可以在表格上定义显示方法并使用现有的缓存机制。您还必须在表格上totalQty定义其他两种显示方法。totalInvoiced请注意,这仍然会导致对totalQtyand的一些不必要的调用totalInvoiced

另一种方法是在表单中实现您自己的缓存机制,例如,使用包含 RecId 和缓存值的映射(有关示例/教程,请参阅表单数据源上的缓存显示方法)。但是,如果性能更像是一个理论问题而不是实际问题,我不会推荐这种方法。

第三种选择可能是将查询组合成一个查询,totalQty然后totalInvoicedfullyInvoiced显示方法使用。这将在您的代码中引入一些冗余,您仍然必须fullyInvoiced在表上定义以利用缓存。但根据查询,它可以提高性能。

于 2016-04-12T11:38:16.420 回答