今天在做一个存折式打印的需求,考虑之前使用水晶报表做过表格报表,果断选择水晶报表来实现此功能。
过程中遇到了一些小问题,顺便记录一下。
第一步:环境安装
环境安装已在:水晶报表(web)表格信息展示 介绍
第二步:RPT文件添加
首先建一个RPT文件“CrystalReport.rpt”,在其上面添加图片。
添加图片方式:右键插入图片或者点击工具栏图片选择要添加文件的目录文件。
可以在“详细资料”中添加你想要添加的所有图片,添加后预览。
如果首页没有图片显示,而是一篇空白,那么请考虑如下两个问题。
1.有没有在“详细资料”编辑区底部留有大片空白,这样会导致第一页显示空白,看不到正文。
2.详细资料——专家节“保持在一起”已经选中,如果选中可以勾选去掉。
第三步:报表预览
报表预览中也会遇到一些麻烦,例如:
1.出现图片无法加载,显示叉叉。
解决方法:请在站点的web.config中加入一下配置,因为当你查看报表的html代码时会发现CrystalImageHandler.aspx所指定的文件不存在。
解决思路:http://www.cnblogs.com/babyt/archive/2008/11/20/1337181.html
<httpHandlers> <add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/> </httpHandlers>
2.预览翻页,提示“没有有效的报表源”。
预览第一页显示不会发现任何不对,但是在翻页时,会发现弹出提示“没有有效的报表源”,此问题应该是因为翻页数据重新新绑定引起。
解决方法:在方法“Page_Init”中重新绑定数据
protected void Page_Init(object sender, EventArgs e) { Initialize(); } private void Initialize() { //证书打印 BindReport(); } protected void BindReport() { string path = Server.MapPath("~/Crystal_Reports/CrystalReport.rpt"); myReport.Load(path); CrystalReportViewer1.HasToggleGroupTreeButton = false; CrystalReportViewer1.DisplayGroupTree = false; CrystalReportViewer1.HasCrystalLogo = false; //CrystalReportViewer1.HasGotoPageButton = false; CrystalReportViewer1.HasPageNavigationButtons = true; CrystalReportViewer1.HasSearchButton = false; CrystalReportViewer1.HasZoomFactorList = false; CrystalReportViewer1.HasRefreshButton = false; //指定数据源 CrystalReportViewer1.ReportSource = myReport; }
3.不分页显示
解决方法:如果不需要分页则可以设置“SeparatePages”属性
//禁止分页 CrystalReportViewer1.SeparatePages = false;
原文:http://www.cnblogs.com/loyung/p/5059485.html