gpt4 book ai didi

delphi - 如何使用快速报告创建报告而不直接连接到数据库

转载 作者:行者123 更新时间:2023-12-03 14:57:33 24 4
gpt4 key购买 nike

我的公司要求我更新用 delphi 编写的特定应用程序的报告功能,并使用快速报告来代替 FastReports。

当前的实现从数据库中提取所有数据,做了大量工作来组织和计算报告所需的数据,并将所有这些存储在几个不同的对象中。然后使用快速报告 OnNeedData 事件填充区域,直到没有更多数据(通过设置 MoreData = false 表示)

我遇到的问题是快速报告似乎需要一个带区来连接到实际的数据源,但我没有。另外fastReports似乎没有类似OnNeedData的事件。

是否可以在代码中填写数据带的值并再次打印,直到打印所有数据,而不将带连接到数据集?

我对这个问题的模糊性表示歉意,我对报告软件非常陌生,任何有关去哪里和看什么的建议将不胜感激。

最佳答案

快速报告使用从 _TFrxDataSet 下降的中间对象来连接其打印数据的报告引擎。

要将报表连接到由程序本身管理的数据源,您可以使用 TfrxUserDataSet 组件,它可以让您在报表中看到数据集,但您可以在报表中手动指定列名称字段 (TStrings) 属性并以编程方式管理和提供值,为以下事件编写事件处理程序:

  • OnCheckEOF 在功能上等同于 OnNeedData,如果没有更多内容可打印,则将 EOF var 参数设置为 true
  • OnFirst,您将尽一切努力开始寻找数据。
  • OnGetValueOnNewGetValue 您为当前行的每个不同提供值
  • OnNextOnPrior,您将当前行移至下一个或上一个位置。

如您所见,行/列概念(数据集)用于向报表提供数据,但您可以从用于存储计算结果的任何结构(列表、数组或任何其他对象/结构/文件等)

在报表内,您将带区链接到此逻辑数据集,并使用标准组件打印该数据集的列

如果数据集中已有数据,例如计算后的内存数据集,最好使用 TfrxDBDataset 将报表直接绑定(bind)到该数据源。

关于delphi - 如何使用快速报告创建报告而不直接连接到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13908176/

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