gpt4 book ai didi

delphi - ClientDataset 索引更改时不计算 TAggregateField

转载 作者:行者123 更新时间:2023-12-03 02:13:49 25 4
gpt4 key购买 nike

我正在使用连接到 DBGrid 的 TClientDataset 和几个聚合字段,用于计算其他几个浮点字段的总和。所有字段均已在设计时创建。

一切都按预期工作,直到 ClientDataset 的 IndexName 使用自定义索引更改,以便对网格进行排序。之后,聚合字段无法正确计算其值,并且它们被设置为 Null 值。

该问题出现在Delphi XE7中。

最佳答案

我在谷歌上搜索了一下,找到了一个对我有用的解决方案 here

DBClient 单元中声明的 TCustomClientDataSet.SetIndex 方法存在错误。解决方案建议替换如下代码

if FAggregatesActive then
begin
FAggFieldsInit := False;
ResetAllAggs(FAggregatesActive);

与下一个

if FAggregatesActive then
begin
CloseAggs;
ResetAllAggs(FAggregatesActive);

据我了解,将 FAggFieldsInit := False 替换为 CloseAggs,强制释放聚合,然后使用新索引重新计算。正如我所说,这个解决方案对我有用,而且我没有注意到任何不需要的行为。

这要归功于 AndreyZ 的原始解决方案。

关于delphi - ClientDataset 索引更改时不计算 TAggregateField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48888172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com