Loading

水晶报表制作实例

水晶报表貌似是比较“古老”的报表技术了,它是由SAP公司开发的报表产品,通过安装开发包可以在VS中集成Crystall Reports设计器。通过可视化的设计和操作,可以完成报表的制作。正好最近有空帮朋友一个小忙,他也提到了使用水晶报表技术完成报表的批量打印和导出。N年不用水晶报表了,正好练练手。

开发工具我们选用目前主流的VS2010旗舰版。VS2010默认是不集成水晶报表的,需要安装开发包CRforVS_13_0.exe。这里我提供一个下载地址,方便大家下载安装。

http://yunpan.cn/cVzPeMMWnJqFv  访问密码 238a

下面将演示在asp.net下如何使用水晶报表开发一个报表应用程序。该应用程序实现了从access数据库中读取相关信息(包含图片),并在我们设计的报表模板中显示。最终实现批量打印、导出等基本功能。

首先新建一个asp.net项目,然后新建Crystal Reports文件。

我们新建一个空白报表。

然后我们就可以在这张空白报表中设计我们想要的东西了,如下图所示:

右键数据库字段,选择数据库专家。

在弹出的对话框中,创建新连接,选择我们的access数据库。

然后就可以在右边的数据库的字段列表中选择相应显示的字段,拖动到右边的设计器相应位置(删除掉页眉部分重复的字符串文本框)。

但是由于照片信息存放的是图片的二进制数据,直接拖动后在设计器中是可以显示的,但是网页不能正常显示,这时候需要注意设置一下Web.config。添加如下节点:

 <httpHandlers>
      <add path="CrystalImageHandler.aspx" verb="GET" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
      <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
      validate="false" />
      <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
      validate="false" />
    </httpHandlers>

之后运行才可以直接显示数据库中的图片了。

最后运行项目之前,还有几个细节需要交代一下:

1、报表每页显示不完整,最后老是多出一页空白页

这个问题的产生是因为页面有多余的部分没有去除,需要做如下设置:

2、字体对齐等如何设置

数字不显示逗号

准备工作完毕,我们就可以在页面中直接显示了。

直接在页面中拖动一个CrystalReportViewer控件即可。它会帮我们自动做好很多事情,包括引用相应的dll等等。最后在页面后台写如下代码即可。

 protected void Page_Load(object sender, EventArgs e)
 {
     ReportDocument rd = new ReportDocument();
     rd.Load(Server.MapPath("~") + "CrystalReport1.rpt");
     rd.SetDataSource(xxx);//xxx为你的数据源dataset
     this.CrystalReportViewer1.ReportSource = rd;
 }

最后看一下效果图:

 

批量打印、导出(word、excel)都妥妥的,水晶报表在这方面真是既省心又省力啊。

posted @ 2015-04-22 20:05  guwei4037  阅读(1593)  评论(0编辑  收藏  举报