VS2015环境下Crystal Reports(水晶报表)的安装使用
1.首先下载Crystal Reports13对于Visual Studio 2015支持的2个文件。
CRforVS_13_0_17
CRforVS_redist_install_64bit_13_0_17
如果你使用的是其它版本的Visual Studio,请查看官方给出的文档,下载相应的版本,具体请参考次地址:http://scn.sap.com/docs/DOC-7824
注意:版本号后边的13_0_17为小版本号,下载时2个文件的小版本号要相同。
2.重启VS,在项目上新建项,此时多了一个Repoting的项目模板,模板里边包含一个Crystal Report的选项,选中即可创建报表模板的.rpt文件。
3.在使用水晶报表的网站项目上,添加如下4个引用,引用在项目的Nuget包管理里边进行搜索。
CrystalDecisions.CrystalReports.Engine
CrystalDecisions.ReportSource
CrystalDecisions.Shared
CrystalDecisions.Web
如果你的项目是C/S的程序,也可以引用CrystalDecisions.Windows.Forms来替换CrystalDecisions.Web
4.打开电脑的如下文件夹:C:\inetpub\wwwroot,在文件里边找到一个 aspnet_client,文件夹,将此文件夹拷贝到网站项目的根目录。
这个文件夹里边的文件,是水晶报表打印页面的所需UI样式文件,如果不拷贝这个文件夹,打印页面看不到任何东西,包括水晶报表打印的工具栏。
以上4步完成后,即可调用模板文件进行打印了!
服务器部署:
首先在服务器上安装CrystalReports的运行时,我安装的版本是CRforVS_redist_install_32bit_13_0_17,这个地方最好是下载32位的版本,我原来安装的64位版本就出现了问题2的错误,网站正常部署就可以,把IIS网站的应用程序池,高级设置选项里边的启用32位应程序选项设置为true,还有就是把报表的rpt文件拷贝服务器,因为发布的时候这个文件不能发布出来,否则也会报错!
以下是开发完成后再服务器部署时遇到的一些问题:
问题1.未能加载文件或程序集“log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304”或它的某一个依赖项。系统找不到指定的文件。
问题是我也没用到log4net啊,按照网上的方法把你开发机器上的C:\Windows\assembly\GAC_32\log4net\1.2.10.0__692fbea5521e1304\log4net.dll,这个dll拷贝到服务器网站bin的文件夹即可,不要从其途径引用log4net.dll文件,我试了即使是相同版本的也不行。
问题2.尝试加载 Crystal Reports 运行时时出错。可能是因为 Crystal Reports 注册表项权限不足,或未正确安装 Crystal Reports 运行时。请安装包含所需的正确 Crystal Reports 运行时版本(x86、x64 或 Itanium)的相应 Crystal Reports 再分发文件(CRRedist*.msi)。有关更多信息,请访问 http://www.businessobjects.com/support。
这个问题我花了好长的时间,原因是因为Crystal Reports得运行时版本必须要安装32位的,我原来安装的是CRforVS_redist_install_64bit_13_0_17,换成CRforVS_redist_install_32bit_13_0_17就可以显示报表的控件了,如果还是不好用就把IIS网站的应用程序池,高级设置选项里边的启用32位应程序选项设置为true
问题3.不支持的操作。无法在 C++ 堆栈中打开由 JRC 引擎处理的文档
这个问题是因为,没有找到报表文件,在发布网站的时候,VS忽略.rpt这种格式文件的发布,所有需要你手动把报表文件,或者包含报表文件的文件夹放到网站相应位置!