我们如何从 Delphi XE 调用 Crystal Reports?Delphi XE 支持什么版本的 Crystal Reports?
4 回答
目前没有对带有 Delphi XE 的 Crystal Reports 的本机支持。过去我所做的是创建一个小型 Delphi Prism 应用程序,该应用程序使用他们支持的 .net 框架 API 运行我的报告。
如果您喜欢冒险,您还可以编写一个小型包装器,通过 com 公开 Crystal 报告 .net 框架 API,然后从您的 Delphi XE 应用程序中调用它。
来自 SAP(业务对象)的 Delphi 的最后一个官方 VCL 组件用于 Crystal XI(11)和 Delphi 7。 Nils Dzubiel 提供了一个适用于 Crystal XI 的 Delphi 2009(unicode)补丁。您可以要求他在 embarcadero 论坛上向您发送他的版本:
https://forums.embarcadero.com/thread.jspa?messageID=114133
此补丁也适用于 Delphi 2010 和 XE。它不是 100% 稳定的,但它工作正常。
您可以使用 Crystal 2008 设计报表,但是对于运行时您必须安装 Crystal XI,因为 2008 不附带 crpe32.dll API 接口。
除了 ANSI/UNICODE API 原型,对于 Crystal Reports XI 报表(称为“RDC”?),“Release 2 Service Pack 6”(版本 1.5)最后一个版本是 64 位目标平台的强制性版本。可下载:https ://www.crystalreports.com/download/
Delphi XE2 / Windows 10 (64 bits) 测试正常,系统稳定;凉爽的。
我一直在努力使用 Crystal Reports 和 Delphi XE。在无数次尝试失败后,我尝试安装旧的 VCL 组件。正如大多数人已经知道的那样,这是失败的。我发现失败点是对 bdertl 和相关组件的引用。这需要一些思考和一些工作,但我现在在 Delphi Berlin 10.1 中拥有 Crystal Reports 控件。应用程序编译并启动正常,但运行报告仍然存在问题。我有理由相信我可以解决这个问题,但需要更多相同的时间。
Crystal VCL 组件中要修改的一些项目: - UCrpeUtl.pas -- 更改 GetCommonFilesPath 以正确反映注册表路径。观看版本检查代码。- UCrpe32.pas - 更正版本检查以查找正确的版本 - 请参阅 TCrpe.LoadEngine 部分。
尝试安装 CR 组件时,请按照 Delphi 早期版本的说明进行操作。编译 dcl7cr11.dpk。注意错误并开始从代码中处理 BDE 引用。在早期代码中注释 bdertl 参考将有助于出现其他问题。注意对 Ttable 的引用 - 消除该例程。我将名称更改为 Don't... 对 ToString 的引用似乎与该名称的现有引用冲突。将此引用更改为“ToAString”。
我仍在努力,但我对通过我最近的成功找到解决方案更有信心。
埃里克·D