天天看点

在VS2013中使用水晶报表

又遇到了在B/S系统中打印,打印格式要求比较高,打印出的效果要求高大上。用VS2013中微软自带的报表,实在难以实现应用的效果,主要问题表现在:

1.不能插入用Word做好的打印模板,自己按照模板来做感觉比较费事,实现不了Word的打印效果,一旦打印模板改变,调整格式比较麻烦。

2.在火狐、谷歌浏览器中打印按钮不显示。

在VS2013中使用水晶报表

安装好之后,在VS的新建项中发现了熟悉的Crystal Reports如下图:

在VS2013中使用水晶报表

在详细资料处【右键】--【插入】--【OLE对象】--【由文件创建】选中要打印的模板。拖动鼠标,放置。

在字段资源管理器中【参数字段】--【右键】--【新建参数】。

在VS2013中使用水晶报表

把参数拖放到要动态获取数据的地方。

在VS2013中使用水晶报表

新建Web窗体,拖放CrystalReportViewer控件,设置相关属性。其中如果不需要左侧的组树,需要设置ToolPanelView=“None”。这是与当时在VS2008中用水晶报表不同的地方。

在页面后台代码动态设置字段值。如下:

在VS中运行调试,打印模板不见了,只有“图像”二字,结果如下:

在VS2013中使用水晶报表
在VS2013中使用水晶报表

在IIS中发布。首先出现如下错误:

未能加载文件或程序集“log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304”或它的某一个依赖项。系统找不到指定的文件。

问题是我也没用到log4net啊。按照网上的方法把C:\Windows\assembly\GAC_32\log4net\1.2.10.0__692fbea5521e1304\log4net.dll (不同的版本log4net的版本可能不同,可以用dos命令符在C:\Windows\assembly文件夹下用dir命令逐级找到)copy出来,放到部署之后的程序bin文件夹下。刷新页面,出现如下错误:

这个错误很熟悉吧,64位操作系统IIS应用程序池未启用32位应用程序,设为True。刷新页面,出现如下错误:

发现在发布的时候VS不会把rpt文件发布过来,直接把rpt拷贝过来。刷新页面,OK了。