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 9.2 VCL 的安装
1、 准备合适的VCL组件
下载和自己开发环境匹配的VCL,例如我们现在所使用的是Delphi 7和Crystal Report 9,所以选择下载Crystal Reports 9 VCL - supports Delphi 7的VCL,地址:http://www.businessobjects.com/products/reporting/crystalreports/vcl/default.asp。或者使用Crystal Report 9中带有的\Program Files\Crystal Decisions\Crystal Reports 9\Samples\chs\Code\Delphi\cr85vcl.exe,注意,这个VCL是Crystal Report 8.5的,但也可以使用,但最好使用www.businessobjects.com网站提供最新的VCL。
注意:由于Crystal Decisions被business objects收购后, 原Crystal Report for Delphi VCL的作者Frank已经不提供VCL的更新(Frank的网站已经不能访问了http://mypage.uniserve.ca/~zimmerman/delphi.htm),关于最新资料最好到www.businessobjects.com/support上查询。
2、 安装VCL
·将VCL组件文件解压缩到Program Files\Borland\crystal9_vcl 目录下。
·启动Delphi IDE,关闭所有文件。
·主菜单 File | Open,打开Program Files\Borland\crystal9_vcl\Delphi7\dcl7cr9.dpk。
·安装组件包
·确认安装成功
·主菜单Tools | Environment Options…
·编辑库搜索路径
·浏览
·选取crystal9_vcl\Delphi7
·添加
·确认添加
·关闭所有文件,注意不要保存相应的包文件
3、 对VCL组件中Demo使用的问题
在使用Crystal Reports 9 VCL for Delphi 7 时,安装VCL后大家都会去看看VCL里带的例子,但是这些例子经过编译发现不少问题,首先这些例子是在老版本基础上制作的,所以用我们新的VCL和环境编译就会出现错误。
打开Program Files\Borland\crystal9_vcl\Delphi7\Samples\MDI32中的工程,编译发现一系列错误:
错误行:
Crpe1.ExportOptions.FileType := ExcelXLS;
原因是新的VCL里的导出文件类型命名进行了修改,而且对支持的格式也有所变化,所以要针对新的导出文件类型要对代码进行修改。这里的ExcelXLS 就需要修改为MSExcel ,代码中的LotusWK3格式已经在此VCL里不支持了。Crystal Reports 9 VCL for Delphi 7中支持的格式如下:
TCrExportType = (AdobeAcrobatPDF, CrystalReportRPT, HTML32,
HTML40, MSExcel, MSWord, ODBCTable, Records, ReportDefinition,
RichText, SeparatedValues, TabSeparatedText, TextFormat, XML1);
如果遇到其他问题,可以逐步调试,看是Demo中的问题,还是VCL组件中的问题。
4、 VCL组件中的修改
VCL组件中本身就有一些BUG,需要我们进行修改。
·当使用TCrpeDS组件用TTable等数据源时,不能显示字符串字段。
解决办法:打开UcrpeDS.pas,修改282行
ftString : pVal := varString;
修改为:
ftString : pVal := varOleStr;
修改完保存,然后重新编译Program Files\Borland\crystal9_vcl\Delphi7\dcl7cr9.dpk。
·提示信息汉化的处理
我们在使用的过程中发现,虽然我们用了Crystal Report 9.2中文版本,但通过编写程序后发现我们的程序错误提示信息中包含了英文信息,这是我们不想看到的。例如在Ucrpe32.pas的8067行:
MessageDlg('Error: ' + IntToStr(FLastErrorNumber) +
Chr(13) + Chr(10) + FLastErrorString, mtError, [mbOk], 0);
明显看出错误信息中加入“Error”单词,我们可以对其进行修改为:
MessageDlg(FLastErrorString, mtWarning, [mbOk], 0);
同样道理,根据自己实际情况检查代码,如果需要修改,可以对VCL代码修改后然后保存,重新编译,就会达到自己所需要的效果。
本文地址:http://com.8s8s.com/it/it5143.htm