You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi 11+Fast Report 2.8 FMX修改数据集字段值后报表报错如何解决

问题原因

报错和字段名大小写无关,核心原因是你调用Edit修改字段值后,没有提交编辑状态,FDQuery此时处于dsEdit编辑状态,FastReport加载数据集遍历数据时无法识别该状态,所以触发报错。

解决方法

按需选择以下任意一种方案即可:

方案1:提交数据集编辑状态

修改完字段值后调用Post方法提交修改,让数据集回到正常浏览状态,修改后代码如下:

begin
 FDQuery1.Active:=true;
 FDQuery1.Edit;
 FDQuery1.FieldByName('cantidad').Value:=21;
 FDQuery1.Post; // 新增本行提交编辑状态

 FrxReport1.ShowReport();
end;

如果需要修改多行数据,遍历每行时都要执行Edit→赋值→Post的完整流程。
如果不想把修改同步到原数据库,可以先把FDQuery的CachedUpdates属性设为True,此时Post只会把修改提交到本地缓存,报表打印完成后调用FDQuery1.CancelUpdates即可回滚本地修改,不影响数据库原始数据。

方案2:报表层面修改展示值(不改动数据集)

如果不想修改原数据集的任何状态,也可以直接在FastReport层面修改展示值:

  • 先在FrxReport中新增自定义变量,绑定到原cantidad字段,打印前直接给变量赋值即可
  • 或者在报表对应组件的BeforePrint事件中直接修改组件的Text属性,不需要调整后端数据集逻辑

内容的提问来源于stack exchange,提问作者Pedro Luque

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:27:01