在VS.NET2008中使用并发布Crystal Reports ActiveX组件

Visual Studio 2008自带的Crystal Reports Basic版本,事实上它的ActiveX组件版本是10.5的,关键的组件有两个:craxddrt.dll和crviewer.dll。本文简要介绍如何在C#项目中使用Crystal Reports Basic的ActiveX组件,以及如何发布带有该组件的项目。

基本思路是使用craxddrt.dll中的ApplicationClass打开一个报表,然后将报表实例赋给crviewer.dll的ActiveX控件以显示报表,现假设报表文件(*.rpt)中没有任何参数设置,数据库连接使用*.rpt模板中的默认连接。要在C#中打开一个rpt报表,首先需要添加对craxddrt.dll的COM引用:

然后,打开需要添加report viewer的Windows Forms窗体,在工具栏上点右键添加如下工具:

C#代码大致如下:

using CRAXDDRT; 
ApplicationClass applicationClass = new ApplicationClass();       
Report report = applicationClass.OpenReport(@"c:\test.rpt", null);       
reportViewer1.ReportSource = report;       
reportViewer1.ViewReport();  

现在开始制作安装程序。制作安装程序的时候,注意Visual Studio 2008的Setup Project向导会自动分析你代码的关联性(Dependencies),然后会把craxddrt.dll和crviewer.dll放在“Detected Dependencies”节点下,并会将这两个文件复制到安装目录中。此时,记得在File System Editor中,分别将这两个文件的Register属性改为vsdrfCOM:

编译Setup Project后生成Setup.msi文件。

部署的时候,客户机上需要首先安装Crystal Reports的组件,安装文件可以在开发机器的%program files%\Microsoft SDKs\windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5目录中找到。找到后,在客户机器上首先运行CRRedist2008_x86.msi(32位)或CRRedist2008_x64.msi(64位)安装程序,再运行刚刚编译得到的Setup.msi文件即可。

posted @ 2009-11-17 16:22  dax.net  阅读(2016)  评论(0编辑  收藏  举报