我有一个标题/行类型的对象(想想 SalesTable/PurchTable),在标题上我有两个计算的显示方法,“总数量”和“总发票”。
我想添加一个简单的显示“Fully Invoiced”,这是一个返回的显示方法:
return this.TotalQty() == this.TotalInvoiced();
问题是再次调用两个显示方法计算,这可能会影响 ListPages 的性能。
有没有办法制作一个使用缓存值的表单方法,这样我就不必调用额外的计算,也不必创建表列?
我有一个标题/行类型的对象(想想 SalesTable/PurchTable),在标题上我有两个计算的显示方法,“总数量”和“总发票”。
我想添加一个简单的显示“Fully Invoiced”,这是一个返回的显示方法:
return this.TotalQty() == this.TotalInvoiced();
问题是再次调用两个显示方法计算,这可能会影响 ListPages 的性能。
有没有办法制作一个使用缓存值的表单方法,这样我就不必调用额外的计算,也不必创建表列?
据我所知,没有办法访问为代码中的显示方法缓存的值。
您可以在表格上定义显示方法并使用现有的缓存机制。您还必须在表格上totalQty
定义其他两种显示方法。totalInvoiced
请注意,这仍然会导致对totalQty
and的一些不必要的调用totalInvoiced
。
另一种方法是在表单中实现您自己的缓存机制,例如,使用包含 RecId 和缓存值的映射(有关示例/教程,请参阅表单数据源上的缓存显示方法)。但是,如果性能更像是一个理论问题而不是实际问题,我不会推荐这种方法。
第三种选择可能是将查询组合成一个查询,totalQty
然后totalInvoiced
由fullyInvoiced
显示方法使用。这将在您的代码中引入一些冗余,您仍然必须fullyInvoiced
在表上定义以利用缓存。但根据查询,它可以提高性能。