Delphi 7 中如何使用 Crystal Report 9.2(四、如何发布自己的程序)

类别:Delphi 点击:0 评论:0 推荐:

Delphi 7 中如何使用 Crystal Report 9.2

李经通

 

日期

版本

描述

备注

2004-3-12

0.1

在Delphi 7 中使用Crystal Report 9 VCL等

新建

 

 

 

 

 

 

目录

 

一、       直接使用Crystal Report 9.2 动态库... 2

1、     开发环境安装注意事项... 2

2     在Delphi 7 中引入Crystal Report Viewer 控件... 2

二、       Crystal Report 9.2 VCL 的安装... 3

1     准备合适的VCL组件... 3

2     安装VCL. 3

3     对VCL组件中Demo使用的问题... 6

4     VCL组件中的修改... 7

三、       利用 Crystal Report 9 VCL 编程... 7

1     利用VCL编写程序... 7

2     简单连接数据源代码实现——只使用Tcrpe32组件就可以满足我们的需求... 8

3     复杂数据源实现——需要TcrpeDS辅助实现数据源的连接... 8

4     处理中遇到的问题... 11

四、       如何发布自己的程序... 11

1     利用InstallShield DevStudio 9来制作安装程序... 12

2     运行库说明... 12

3     遇到的一些问题... 14

五、       总结... 14

 

 

 

一、       如何发布自己的程序

当我们把程序编写完成后,最后的任务是要把我们的程序发布出去,但是由于Crystal Report 带有很多库,这样给我们发布程序带来了很多麻烦,使我们发布出去的程序在客户机上功能不能够正常使用,下面就介绍如何发布程序,以及经常会碰到的问题:

1、 利用InstallShield DevStudio 9来制作安装程序

在InstallShield DevStudio 9已经带有Crystal Report 9的Merge Modules,但是那是英文的,不能够满足我们的需要,我们需要下载简体中文的,进行替换。下载地址:http://support.businessobjects.com/communityCS/FilesAndUpdates/cr9rdcmergemodules_chs.zip.asp?recDnlReq=Record&dnlPath=cr9rdcmergemodules_chs.zip。

·下载后解压缩,替代\Program Files\Common Files\Merge Modules中对应的文件。

·将Crystal Report 9-Crystal Report Engine Components选择加入我们的安装程序中。

·如果使用了TclientDataSet等数据集,那么需要加入midas.dll。

·需要加入crpe32.dll、crpe32_res_chs.dll、gdiplus.dll、commonobjmodel.dll、rptobjmodel.dll、u2fcompress.dll

·更加自己程序功能特性加入其他库文件。

      

2、 运行库说明

虽然Crystal Decisions申明Crystal Reports components 支持多个版本安装在同一机器上,但不支持这样做,实际应用过程中还是会发生一系列问题。

当发布自己的程序时,依靠Crystal Report 运行库主要有以下几个方面:

——访问Crystal Report Engine的方法

——报表所用的数据源

——导出类型支持

——其他功能,如图表、地图、公式的支持。

Crystal Reports components中的四个主要器件介绍:

——Craxdrt9.dll —— The Crystal Reports 9 ActiveX Designer Runtime DLL. This DLL is the reporting engine and it exposes the Object Model Hierarchy. Distribute this DLL with all applications using the RDC。

——CRViewer9.dll —— The Crystal Reports View Control. Use this component to preview your report. If you are not previewing the report, then it is not necessary to distribute this DLL。

——CRDesignerCtrl.dll —— Embeddable Crystal Reports 9 Designer Control. This DLL exposes report creation and designer capabilities in your application and allows you to create a report at runtime using an ActiveX designer。

——Craxddrt9.dll —— Crystal Reports 9 ActiveX Designer Design and Runtime DLL. This DLL is the engine used to design and format reports at design time, as well as to access and process reports at runtime。

虽然Crystal Report 提供了安装包,但安装包中的文件比较多,很多都是不是我们所需要的,我们可以挑选自己需要的库文件加入安装程序中,主要参考Program Files\Crystal Decisions\Crystal Reports 9\Developer Files\Help\chs\runtime.chm帮助文件。

·主要需求文件

Craxdrt9.dll: Mfc42.dll, Msvcrt.dll, Msvcp60.dll, Comdlg32.dll, Comctl32.dll
CRViewer9.dll: Comctl32.dll
CRDesignerCtrl.dll: Msvcrt.dll, Comctl32.dll
Craxddrt9.dll: Mfc42.dll, Msvcrt.dll, Msvcp60.dll, Comctl32.dll, Comdlg32.dll, Msvcirt.dll

·需要C&C++运行库

——Mfc42.dll (version 6.0.8447.0 or higher)

——Msvcrt.dll (version 6.0.8397.0 or higher)

——Msvcp60.dll (version 6.0.8168.0 or higher)

·其他系统库

Comdlg32.dll
——Comctl32.dll
——Riched20.dll
——Usp10.dll

·Crystal Report 运行库文件需要安装以下文件和操作:

——Run CR9Deploy.reg; (or modify this file to where you will have your bin folder, the rest of this article assumes that the bin folder location is "C:\Program Files\Common Files\Crystal Decisions\2.0\bin") refer to 'Runtime.chm' and look under 'Side-by-side installation' for more information.

——Copy Unicows.dll to "C:\Program Files\Common Files\Crystal Decisions\2.0\bin". Include unicows.dll (version 1.0.3703.0 or higher) into distributions that are targeted for Windows 9x computers. For more information, refer to knowledge base article c2011871

——Copy Craxdrt9.dll to "C:\Program Files\Common Files\Crystal Decisions\2.0\bin" (Register this file using regsvr32.exe)

——Copy the following dependency files to "C:\Program Files\Common Files\Crystal Decisions\2.0\bin"

——Implode.dll (for applications using reports created in versions previous to Crystal Reports 8)

——Querybuilder.dll

——Ufmanager.dll

——Atl.dll (There are two versions of Atl.dll one for Win9x and another for WinNT/Win2000. Please refer to special instructions in 'Runtime.chm' and look under 'Additional Components' and then 'Paged-ranged export' for more information.)

——Copy Crqe.dll to "C:\Program Files\Common Files\Crystal Decisions\2.0\bin" (Register this file using regsvr32.exe)

——Copy keycode.dll to "C:\Program Files\Common Files\Crystal Decisions\2.0\bin" (Register this file using regsvr32.exe)

·如果需要允许在应用程序查看报表那么需要下面的操作:

——Copy Crviewer9.dll to "C:\Program Files\Common Files\Crystal Decisions\2.0\bin" (Register this file using regsvr32.exe)

·如果需要程序中能够设计报表模板的功能,则需要下面的操作:——

Copy Crdesignerctrl.dll to "C:\Program Files\Common Files\Crystal Decisions\2.0\bin" (Register this file using regsvr32.exe)

——Copy Craxddrt.dll to "C:\Program Files\Common Files\Crystal Decisions\2.0\bin" (Register this file using regsvr32.exe)

·ACTIVE DATA

如果需要用到ACTIVE DATA(ADO, CDO, DAO, RDO, etc),则需要加入数据库访问的库文件。

·DATABASE DLLs

如果程序中用的不是活动数据连接,而是数据库文件(如Access表等)则需要crdb_*.dll or p2*.dll相应的库文件支持。

·导出 Dlls

根据自己的需要选择导出Dll文件。

 

3、 遇到的一些问题

·导出HTML问题(虽然我们加了很多库文件,最后发现导出HTML不能正常使用),我们需要检查如下库文件,是否全部包含了。

在Program Files\Common Files\Crystal Decisions\2.0\bin中检查:

——Crxf_html.dll

——ReportRenderer.dll (Register this file using regsvr32.exe)

——PageObjectModel.dll (Register this file using regsvr32.exe)

——WebReporting.dll (Register this file using regsvr32.exe)

——Commonobjmodel.dll (Register this file using regsvr32.exe)

——Rptdefmodel.dll (Register this file using regsvr32.exe)

——U2fcompress.dll

——DataDefModel.dll

——Gdiplus.dll (Due to licensing restrictions, you must get gdiplus.dll from the Microsoft web site. Go to http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm and select "GDI+ RTM").

在Crystal report 安装包中已经带有Crxf_html.dll 、ReportRenderer.dll 、PageObjectModel.dll 、WebReporting.dll这几个文件了,我们需要加入 U2fcompress.dll 、Commonobjmodel.dll 、Rptdefmodel.dll 、Gdiplus.dll四个文件就可以解决导出HTML的问题。

如果在报表中有自定义的函数,则需要加入U2*.dll (UFL)库文件。

 

·在客户机上安装程序后,发现带有图表的报表不能正常显示,需要将Program Files\ Common Files\Crystal Decisions\2.0\bin中的sscsdk80.dll拷贝到Windows\WINNT\System32,这是因为可能客户机上含有老版本的sscsdk80.dll,需要将新版本的文件拷贝到系统目录下面。

 

二、       总结

回顾我们在Delphi 7 中利用Crystal Report 9 VCL 开发项目的历程发现实际上使用方法很简单,但我们在当初开始使用的时候总会遇到这样那样的问题,首先是我们使用认识需要一个过程,其次就是Crystal Report 9 VCL中存在很多问题,需要我们发现,去修正。当然,本文也是一个粗浅的使用指导,里面有很多缺陷和不足,需要大家使用过程中去发现和完善,本文的目的是引导大家尽快熟悉使用Crystal Report 9 VCL在Delphi 中开发我们的程序。

本文地址:http://com.8s8s.com/it/it5141.htm