u本节内容包括:
n打印某高校学生成绩单案例简介
n打印某高校学生成绩单实验步骤
n打印某高校学生成绩单(动态数据)案例

6-1-1 案例学习:打印某高校学生成绩单案例

某高校标准的学生成绩单的纸质报表样式如图6-1所示。该纸质报表是一种典型的汇总统计型报表,具有典型的报表页眉,页脚及详细资料显示区域,同时在页脚必须实现对学生成绩的综合成绩统计工作。因此,掌握该类型报表的设计工作,对一般复杂类型的水晶报表就可以完全设计出来了。
6-1  学生成绩单纸质报表样式
u实验步骤1
建立一个空的rpt文件,首先进行整个报表的纸张大小设置,这一点对于后期打印报表和报表布局非常重要。根据办公室人员介绍,该报表的打印纸张必须是B5型打印纸。向有关人员要来成绩单电子文档,通过Word软件打开文件后,查看该Word文档的页面设置如图6-2所示。
6-2  电子Word文档的页面设置参数配置
Word文档的页面设置参数信息可以得出,纸质大小为16开,上下边距2.54厘米,左右边距3.17厘米。这些参数将为水晶报表的格式化定制提供标准的设计参数。
 
u实验步骤2
回到新建立的rpt文件,用鼠标右键单击报表界面,在弹出的对话框中选择当前报表的打印机设置选项,将纸张大小设置成为B5纸,纵向。如图6-3所示。
6-3  水晶报表的打印设置
u 实验步骤3
再用鼠标右键单击报表界面,在弹出的对话框中选择当前报表的页面设置选项,按照WORD文档页边距参数进行配置。如图6-4所示。
6-4  水晶报表的页边距设置
u 实验步骤4
设置报表页眉,该处文本仅仅在第一页头部出现。从报表的工具箱中选择文本对象,拖到报表页眉处,在报表页眉处键入字样后,点击右键选择设置对象格式。依次将报表页眉文字进行与纸质报表对应文字字体格式的设置,最终形成的样式如图6-5所示。
6-5  设置水晶报表的报表页眉文字格式
u实验步骤5
设计页眉部分,该部分文本将在每页的头部处出现。此次页眉部分为表格的表头部分,包括的内容有:学生学号,姓名,平时成绩,设计成绩,考试成绩,总评成绩,共6项内容。由于报表左侧第一单元格线段是斜线,无法通过工具箱的控件实现,故需要通过绘图软件做成图片后填充该区域。通过右键点击页眉处,选择图片,将制作好的图片插入左侧页眉处。而后,以该图片的高设定为页眉行高,宽度为第一单元格宽度。从工具箱之中拖拽框对象,此处需要注意的是,绘制边框时候,页眉和详细资料全部一起框住,这样产生的报表样式可以统一美观。最终形成的样式如图6-6所示。
6-6  水晶报表的表头页眉设置过程
u 实验步骤6
选择工具箱之中的线条对象,在页眉处绘制出四个单元格,准备添加相关的文字信息。如图6-7所示。
6-7  水晶报表的表头页眉绘制分割线
u 实验步骤7
    配置水晶报表数据源,该类型水晶报表的设计开发必须采用Push模式进行设计。用右键点击报表界面,在弹出的菜单中选择数据库->数据库专家,在弹出的OLE DB(ADO)界面中选择OLE DB Provider SQL Server,并配置数据库服务器连接信息。此次选择的数据库为示例数据库Grade_Sys(成绩管理数据库),以sa用户身份登录,无密码。选择完成后,打开菜单中的水晶报表项里面的字段资源管理器,准备将展开的数据库字段拖拽到报表界面上面。如图6-8所示。
6-8  水晶报表的数据源信息配置流程
u 实验步骤8
将页眉处文字按照图6-29写入,并配置字体大小,同时用线条对象勾勒出表格的基本数据分布区域。以页眉表格为基准,在详细资料处同样绘制相应的表格单元。将详细资料各个单元格需要的数据从字段管理器的数据库字段拖拽过来(此次应用的单表为sc表,该表为学生成绩表,具体格式请读者恢复Grade_Sys数据库后,自行查看),把属性字段删除分布在页眉的部分后,将实际字段分别排列在详细资料的空格内。
6-9  水晶报表的详细资料部分设计和表头文字设计
u 实验步骤9
配置报表页脚部分,该部分仅仅在水晶报表最后一页尾部出现。从工具箱中拖拽文本,线条和框对象共同组成下图在页脚部分的样式。
6-10  水晶报表页脚部分设计
u 实验步骤10
右键点击报表页面,选择报表->节专家,在打开的节专家设计器里面,勾选在页面底部打印功能。此功能可以使得报表页脚仅仅在最后一页的底部显示。如图6-11所示。
6-11  设置水晶报表报表页脚仅仅在最后一页的底部显示
u 实验步骤11
整体设计完成后的报表如下图所示,点击主报表预览,可以预览报表基本样子。如图6-12所示为最终设计效果。
6-12  水晶报表最终设计效果
u实验步骤12
回到form1界面,从水晶报表中拖出一个crystalReportViewer对象,并配置该crystalReportViewer对象的reportsource属性为刚才设计的rpt文件。运行form1,程序一切正常,主要问题是:
Ø报表头非动态变化的数据;
Ø显示的学生成绩内容并非一个班的,而是所有的学生成绩。
Ø每门课程的百分比非动态变化的,毕竟每个教师给出的百分比都不尽相同。
Ø报表页脚的信息是静态不变的。
很显然,离真实的动态报表还是相距甚远,我们将在下一节详细介绍动态水晶报表技术,其中的水晶报表文件仍然是我们设计的这个rpt文件。如图6-13为水晶报表属性配置图,6-14为最终运行效果图。
6-13  水晶报表数据源配置
6-14  水晶报表运行效果图