3、在窗口的左边栏,用鼠标右键单击“数据连接”,在弹出的浮动菜单中选择“创建新的SQL Server数据库”,则有新窗口弹出,在该窗口中有两件事要做:一是选择“服务器名”,如“47012CAAD3A04CE\SQLEXPRESS”;二是“新数据库名称”,如“library”。最后鼠标左键单击“确定”。
4、在上图中用鼠标的右键单击“表”,在弹出的浮动菜单中选择“添加新表”,那么在上图的右边中可以数据库添加表的“列名”和“数据类型”等。
5、用鼠标左键单击上图的右上角的“×”符号,有窗口出现,在窗口中单击“是”,然后又出现一个较小点的窗口,在这个窗口中输入数据库的表名,如“book”,然后再单击“确定”,那么这个表就建成,可以用手动方法或编程方法给空表添加数据。
三、页面打印功能的设计及相关代码
1、在“解决方案”中选择当前的项目,然后在当前项目中添加“数据集”,并在“数据集”中添加DataTable,如book。
2、新建一网页文件,将VS2008中工具箱的CrystalReportSource控件拖放到网页上,然后配置报表源。这时可按报表生成向导进行报表设计。在报表生成向导中的“可用数据源”中选择前面已经创建的数据集中的那个book表。
3、将CrystalReportViewer控件拖放到网页上,点击CrystalReportViewer控件设置该控件的报表源。
3、在网页的合适位置放一个Button控件,并将Button的text属性改为“打印报表”。双击该“打印报表”按钮,打开代码页,在代码页的命名空间处引入如下命名空间:
using CrystalDecisions.Shared;
using CrystalDecisions.ReportSource;
using CrystalDecisions.CrystalReports.Engine;
并且在button事件中加入好下代码:
ReportDocument oRpt = new ReportDocument();
oRpt.Load(Server.MapPath("CrystalReport1.rpt"));
// CrystalReport1.rpt为前面所建的水晶报表文件的默认名。
oRpt.PrintOptions.PaperSize = PaperSize.DefaultPaperSize;
//设置纸张尺寸
PageMargins margins;
margins = oRpt.PrintOptions.PageMargins;
margins.bottomMargin = 0;
margins.leftMargin = 0;
margins.rightMargin = 0;
margins.topMargin = 0;
//以上四行为页边距的设置。
oRpt.PrintOptions.ApplyPageMargins(margins);
oRpt.PrintOptions.PrinterName = "";
//这里设置打印机名,oRpt.PrintOptions.PrinterName当为空
//表示打印机为操作系统默认打印机。
oRpt.PrintToPrinter(1, false, 1, 1);
//代码中oRpt.PrintToPrinter(1, false, 1, 1)中的第一个参数为打印的份数
//第二个参数为是否设有逐份打印,false表是不逐份打印
//第三个参数为打印的起始页码,第四个参数为结束页码。
四、套打功能的实现
套打指的是将页面内容打印到一定格式的表格、发票、证件上,实现的步骤如下:
1、将要套打的表格、发票、证件等进行扫描,生成图片文件,或者使用图像工具进行绘制,不管是扫描的还是绘制的一定要与原件有同样的大小和比例。
2、打开报表文件,在Crystal Reports 菜单上选择“插入”,再选择“ole对象”,在弹出的窗口中选择“由文件创建”,通过浏览在电脑上选择相关扫描或绘制的文件。
3、如果套打的内容是由数据库管理的,那么在报表的“字段资源管理器”中的相关的数据库字段拖放在报表的表格、证件、发票的要打印的位置,根据要求设计字体、字形、大小等。如果套打的内容不是由数据库管理的,那么就拖入其它相关字段。如下图
4、选择刚才插入的ole对象,右键单击该对象,选择“设置对象格式”,在弹出的窗口中勾选“抑制显示”。这样做的目的是使打印时不再打印水晶报表中的表格、证件、发票等(换句话说,这里的表格、证件、发票起的作用仅是为了能准确将打印的内容打到指定位置),而只打印要打的相关字段。
5、相关代码与前所提及的类似,但是如果打印的纸超过A4大小,需要修改下面的语句:
oRpt.PrintOptions.PaperSize = PaperSize.DefaultPaperSize;
如将DefaultPaperSize改成PaperA3,这里表示纸的大小为A3。
五、WEB服务器的水晶报表环境
由于B/S架构中加入了水晶报表,所以需要服务器要有水晶报表的环境,这一点是容易被忽视的,这就需要安装相关插件。在安装插件时有两种方法:
1、
在装有vs2008的计算机的“program files”文件夹上可以搜索到“CRRedist2008_86.msi”文件,将它拷贝到WEB服务器并在该服务器上安装。
2、
也可以使用打包的方法。在给网站打包时,在打包项目的属性窗口中,单击“系统必备”,然后窗口中勾选“crystal reports basic for Visual studio 2008”,再将“指定系统必备组件的安装位置”选为“与我的应用程序相同的位置下载系统必备组件”。在安装网站时,会自动安装CRRedist2008_86.msi。