我正在使用RDC / ActiveX接口将Crystal Reports 8中的应用程序移植到Delphi 5中的Crystal Reports XI。
在Crystal Reports 8中,我能够为报告调出水晶报告默认报告查看器窗口,如下所示:
RptInvoicing.Destination := 0; // To: window
RptInvoicing.Action := 1; // Execute
然而,这与CR XI无关。印刷和出口我已经想到这样工作:
crReport.PrintOut(True);
...
crReport.Export(True);
但是我无法找到任何与显示默认预览窗口相关的内容。我已经尝试使用报表查看器组件实现自己的,但它有很多问题,例如在调整大小,冻结和崩溃时锁定,因此它不适用于生产应用程序。
即使是官方的支持论坛也没有帮助,我只是得到一个令人讨厌的答案去看看手册,我已经多次这样做,只能说是坏的。并不是每天都能看到企业产品的错误文档。我在他们的手册中发现没有任何相关内容,所以我认为他们自己的员工也不知道这一点。
所以我希望有人可以告诉我CR XI中是否仍然存在默认报告查看器,如果存在,如何调用它?如果没有,是否真的使用报表设计器组件创建一个?
答案 0 :(得分:2)
我最近遇到了同样的问题,described the solution here。我正在使用Delphi 2007,但由于代码涉及对外部ActiveX DLL的调用,它也适用于你。
答案 1 :(得分:1)
从他们的文件:
Craxddrt.dll(Crystal Reports ActiveX 设计师设计和运行时库) 是一个统一的对象模型 结合了运行时的功能 Craxdrt.dll(Crystal Reports ActiveX Designer运行时库) 具有设计时间的能力 Craxddt.dll(Crystal Reports ActiveX Designer设计时间库)。 Craxddrt.dll将取代Craxddt.dll 对于8.5及更高版本。这俩 Craxddrt.dll和Craxdrt.dll 包含所有对象和关联 所需的方法,属性和事件 用于创建,打开,导出, 保存,并在运行时打印报告 时间。另外,Craxddrt.dll是 或者与RDC ActiveX一起使用 设计报表的设计师 设计时间,或与之一起使用 设计时嵌入设计师 在运行时报告。请参阅“嵌入式” Crystal Reports Designer控件 对象模型“在页343”了解更多 信息。
注意:RDC ActiveX Designer仅适用于 Microsoft Visual Basic 。
之前 版本8.5,Craxdrt.dll将是 与应用程序一起分发。现在 开发人员可以选择两个 自动化服务器分发。 Craxdrt.dll是向后兼容的 与以前的版本和包含 这里介绍的所有功能 版。使用Craxdrt.dll进行任何操作 客户端应用程序没有 包含Embeddable Designer,或 将它用于任何服务器端 应用。 Craxddrt.dll是 公寓模型线程,但不是 线程安全,只能用于 客户端应用程序。虽然 Craxddrt.dll功能齐全 RDC的自动化服务器,可以 在任何客户端应用程序中工作, 它会增加安装尺寸。 因此,建议你 只使用Craxddrt.dll 可嵌入的Crystal Reports设计器 控制。
答案 2 :(得分:0)
我不能说Delphi,但在VB中我们使用的是CRViewer ActiveX Control。使用它很简单 - 您将查看器控件放在窗体上并为其分配RDC对象。这在某些地方的CR帮助中有所涉及。 (我不能看代码ATM提供工作的例子。)