delphi – 如何手动执行“OnCalcFields”事件?

delphi – 如何手动执行“OnCalcFields”事件?,第1张

概述假设我暂时想要在TClientDataSet上执行耗时的 *** 作期间禁用OnCalcFields事件(例如,通过设置cdsCalcFields:= nil).当我重新附加OnCalcFields方法时,如何告诉TClientDataSet重新计算计算字段? 可能需要手动重新计算的另一种情况是某些计算字段取决于其他数据集的情况(例如,计算字段用于临时保存来自其他数据集的某些聚合值).这在大多数情况下都可 假设我暂时想要在TClIEntDataSet上执行耗时的 *** 作期间禁用OncalcFIElds事件(例如,通过设置cdsCalcFIElds:= nil).当我重新附加OncalcFIElds方法时,如何告诉TClIEntDataSet重新计算计算字段?

可能需要手动重新计算的另一种情况是某些计算字段取决于其他数据集的情况(例如,计算字段用于临时保存来自其他数据集的某些聚合值).这在大多数情况下都可以正常工作,因为OncalcFIElds事件的执行频率足以从其他数据集中获取正确的值.但在某些情况下,需要重新计算才能从其他数据集中获取正确的值.

将autoCalcFIElds属性设置为False也可能会使您进入需要手动重新计算的某些情况.

我已经看到了关于如何减少OncalcFIElds事件执行的几个解释,但我找不到一个简单的方法来执行重新计算……

有什么建议?

解决方法 从数据库中检索记录时计算计算字段,因此请在数据集上调用Refresh(或Close – > Open)以强制重新计算.

(关于对问题的评论),要强制仅对一条记录进行重新计算,可以在数据集上调用RefreshRecord.如果特定数据集后代未实现该方法,则编辑后跟取消调用将实现相同.

总结

以上是内存溢出为你收集整理的delphi – 如何手动执行“OnCalcFields”事件?全部内容,希望文章能够帮你解决delphi – 如何手动执行“OnCalcFields”事件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1251432.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存