基于RDLC语言的批量打印系统的设计与实现

2017-12-19 01:20娟,龚
河北软件职业技术学院学报 2017年4期
关键词:市州登记表报表

纪 娟,龚 艺

(四川广播电视大学,成都 610073)

基于RDLC语言的批量打印系统的设计与实现

纪 娟,龚 艺

(四川广播电视大学,成都 610073)

随着互联网的快速发展,信息化系统在各行各业得到广泛应用。毕业生登记表填写与打印归档是学生毕业事项过程中比较繁琐和复杂的工作之一,依据传统的手工填写和打印效率低且耗费大量的人力和物力,因而有必要实现基于B/S模式的登记表管理系统,提高工作效率且方便学生填写。鉴于此项需求,详细分析了系统实现的难点,并制定了相应的技术方案,最终实现了系统的所有功能,并展示了系统的应用情况。

毕业生登记表;打印;B/S

0 引言

毕业生登记表填写与打印归档是学生毕业事项过程中必须办理的一项工作。与普通高校相比,笔者所在的广播电视大学毕业生登记表的填写打印更是一项繁琐和复杂的工作。普通高校学生一般都是在每年的7月份毕业且人数少,笔者所在学校每期毕业生2万多,每年的1月和7月都可申请毕业。另外由于笔者所在学校的三层体系结构,从省到市州再到县级在地理位置上有所制约,使得毕业生登记表管理工作更加复杂。

传统的打印系统为了使打印功能流畅运行,系统实现的架构基本上都是在C/S模式下实现,不会考虑Web打印。随着微软RDLC语言的发布和Web打印控件的出现,Web打印越来越多地被应用到系统中来。基于此,依托信息化系统,在B/S模式下完成毕业生登记表填写与打印归档是具有重要的现实应用价值的。

1 系统实现难度分析

系统的流程是:省校用户导入每期毕业生基础信息,为以后的操作形成基础数据;学生在线完善其他信息,确认无误后提交给县级管理人员审核;县级管理人员审核后上报给市州管理员;最后市州管理员上传给省校管理员,省校管理员把上报的学生信息按照毕业生登记表的Word文档格式批量打印。系统流程如图1所示。

图1 系统流程

从流程上看业务流清晰明了,实现系统功能是可行的,而真正的难点在于技术层面和用户体系的实现。

1.1 三级结构的用户体系

由于笔者所在学校的三级体系结构,在管理上出现了三级管理模式,因而在系统建设时对于用户体系必须考虑到这三级结构。各级用户有各自的功能权限且不能越级管理,最终体现在系统的用户、角色和权限的实现上。

1.2 Word文档格式的实现

毕业生登记表有固定的Word文档格式,如文档的长度和宽度、上下左右边距值的设置和表格中行宽行高的设置等。把基础信息和学生完善的信息按照文档的模板格式呈现在网页上,同时在排版时不因填写内容的不同而错位,这在技术层面上是一个难点。

1.3 批量打印

每期有2万多学生毕业,对于省校打印人员来说工作量巨大。如果再按分校来分类归档登记表,如果没有按分校批量打印的功能,打印和分类归档会耗费大量的人力和物力。目前实现批量打印有两种方法:使用报表和使用JS控件。报表比较复杂,初学者不容易上手,JS控件是基于HTML和CSS基础上的,对浏览器的兼容性要求比较高。

2 系统实现的关键技术

2.1 用户三级体系及权限方案

首先需理清本系统的用户类型,依据业务流可以看出,系统有管理员和学生两种类型的用户,管理员层级上又分为省校管理员、市州管理员和县级管理员,因此可以在初期建立四种角色,后期依据系统的扩展建立其他角色。其次,为这四种角色分配不同的功能,如省校管理员可以查询统计毕业生登记表提交、审核情况,可按分校批量打印登记表,而学生用户完善登记表信息并提交给县级管理员审核,即是权限的划分。这一难点可以从数据库层面解决,在数据表结构上设计用户(user)、角色(role)、权限(priv)基础表,以及用户与角色关联(user_role)和角色与权限关联(role_priv)的关联表,而层级的解决方法是给用户表的每个用户添加所属机构,用户、角色、权限及相互关联表关系如图2所示。

图2 用户权限数据表关系图

2.2 用RDLC语言实现排版和批量打印

在.NET开发中,用什么做报表,可能的回答是 Crystal Report,因为.NET“紧密”集成 Crystal Report,但是这种集成似乎并不非常紧密,太复杂也许是其最为令人诟病的地方,自定义性比较差也不能为程序员们所容忍[1]。

在 VS.NET2005之前,SQL Server Reporting Services提供了一种被称为报表定义语言(Report Definition Language,RDL)的语言;在 VS.NET 2005中,Microsoft提供了针对这种报表的设计器,并提供了在WinForm和WebForm中使用这种报表的能力。Microsoft将这种报表的后缀定为RDLC,RDL仍然是Report Definition Language的缩写,而C代表的是Client-side processing,凸显了客户端处理能力。其特点主要体现在下述几方面:

(1)报表中的控件简单易用,关于数据表的控件有表格和矩阵两种,一般结构的报表布局表格基本能完成;

(2)可定制报表,报表中的所有信息和描述可用XML语言来定义;

(3)可编程性高,通过后台编写代码可实现生成报表、预览和打印等功能;

(4)支持DrillThrough数据钻取功能;

(5)导出的Excel文件格式非常完美,任何其它报表在这方面都不能与之比拟,而且不需要安装Excel。

应用RDLC报表到系统中可以分3个步骤完成。

(1)定义报表数据集。在App_code下添加新项,文件类型是数据集,在数据集里使用标准的SQL语句建立数据源,一个数据集中可建立多个数据源,每个数据源可对应数据库的一个表或多个表关联的表结构。其目的是关联数据库表生成数据模型,使得在设计报表后有数据源可引用,而报表的内容数据需要在后台动态生成。

(2)建立RDLC文件,设计报表。添加新项,文件类型是报表,后缀名是RDLC。之后在报表设计器里设计报表。在报表控件中表和矩阵是比较常用的数据列举方式,在报表设置数据源后,表格内容可以设置为数据源的字段。如图3所示是毕业生登记表的第一页报表设计模型。

(3)关联动态数据集。报表设计完成且数据源设置正确后,需要在后台CS文件中连接数据库,动态获取数据库中表的数据,指定报表模板,然后把动态获取的数据提供给指定报表模板中的数据源。代码实现如图4所示。

图3 毕业生登记表第一页设计模型

图4 动态加载报表代码实现

3 系统功能实现

毕业生登记表管理系统采用B/S架构,用户通过客户端浏览器访问系统。系统主要有五个功能模块:系统管理、省校管理、县级管理、市州管理和学生登记提交。总体功能模块如图5所示。

3.1 省校管理

批量打印:按毕业生登记表的文档格式批量打印学生登记表,可按市州学校查询统计后打印市州学校下已审核并上传的所有学生登记表,打印完成后并修改登记表的状态为已打印,每张登记表只能打印一次,已打印过的登记表不会再出现在打印名单里。实现效果如图6所示。

图5 系统功能模块

图6 系统打印实现效果图

导入毕业生数据:将本期毕业生中已经取得毕业证号的学生的基础信息,如学号、姓名、入学时间、性别、民族、出生日期、身份证号、学习专业、学习形式、学制、政治面貌、毕业时间、证书编号和联系电话从教务系统中提取出来,导入本系统中,同时为这些学生添加系统访问账号,即向用户表里添加学生的用户账号和密码。

3.2 系统管理

管理系统的用户、角色和权限。

用户管理主要是新增用户、编辑用户、删除用户、查询用户、密码复位和分配角色。建立用户时需要指定用户的所在机构,特别是管理员用户。每个用户有一个表示身份的USERID号,产生后不能修改。分配角色是在新建角色之后操作,这一功能是把用户和角色关联起来。

角色管理主要是新建角色、编辑角色、删除角色和为角色赋予权限。为用户分配角色后该角色不能删除;为角色赋予权限是把角色和权限关联起来,最终目的是为不同的用户分配不同功能权限。

权限管理主要是新建权限、编辑权限和删除权限。为角色分配权限后该权限不能删除。

3.3 学生登记提交

完善信息:学生通过客户端完善登记表信息,如奖惩情况、自我鉴定、主要学习经历、毕业论文题目和毕业实习单位及内容。为了在打印时布局整齐简洁,在填写时不允许输入非法字符和非法信息,不允许输入多个连续的回车符和换行符,且在字数上有限制。实现效果如图7所示。

图7 完善登记表实现效果图

提交审核:学生完善信息,检查无误后提交给县级学校审核。提交后学生不能修改相关信息,但能查看登记表,如果发现填写有误,在未打印之前可向所属学校提出申请退回登记表,重新填写。

3.4 市州管理

查询统计:可查询本市州学校本期毕业生总人数,已审核登记表人数,已上传登记表人数,便于统计本机构下县级学校完成登记表情况。

上传:将县级学校审核通过的登记表上传给省校。

3.5 县级管理

查询统计:可查询本级学校本期毕业生总人数,已提交登记表人数,已审核登记表人数,便于督促学生填写登记表。

退回重填:学生提交登记表后发现填写有误,而提交后又无法修改,因此需要此功能。有两种情况可以退回重填,一是学生已提交,但县级学校未审核,二是县级学校已审核。省校已打印的情况下不能退回重填。

审核:审核登记表信息,可批量审核和单个审核。

4 应用情况

4.1 用户体系情况

四川广播电视大学自办学以来一直是三级的管理模式,每个信息化系统从用户层面上都要考虑到三级模式。自2014年秋季正式投入使用系统至今已有7个学期,目前我校有20多家市州学校和200多个教学点,管理员用户已经定型,不会有大批量建立的情况出现,变动的地方是每学期需要添加2万多的学生用户。

截至2017年春季学期,系统中已建立省校管理员10多名,市州管理员28名,县级管理员250名和学生用户24万,由于每学期用户数量以万级单位增加,对于数据库性能和数据表管理有一定的要求,特别是要不定时地清理用户表的索引。

4.2 系统应用情况

2014年秋季正式使用该系统,由于系统的流程及业务简单,各级用户快速上手,并对系统提出了一些建设性意见。从管理员的角度来看,大大减少了他们的工作量,提高了他们的办公效率。从学生的角度来看,学生不需要再到学校内手工填写登记表,可在网上填写完成并提交给各学校,简化了学生完成登记表的流程。

系统充分考虑用户体验,方便管理人员和学生用户使用,提供了数据校验、操作提示和在线帮助文档,提供了数据的导入和导出功能,系统投入使用以来,受到各级学校和学生的一致好评。

5 总结和展望

近年来,随着互联网的快速发展,信息化系统层出不穷,各行各业都在信息系统办公已成普遍现象。笔者结合本校数据量大和打印需求性能高的实际情况,设计并实现了该批量打印系统,且采用的是B/S模式,可支持大数据量的请求,打印速度快,大大提高了工作效率,具有一定的应用价值。目前国外移动学习的研究和移动学习系统的应用已进入蓬勃发展期,移动办公已成为可能,学生通过移动设备完成登记表的填写将成为系统以后发展的方向。

[1]RDLC 报表[EB/OL].(2006-02-25)[2017-08-20].http://www.cnblogs.com/waxdoll/archive/2006/02/25/337713.html.

[2]余媛.基于SOA的公交企业报表系统的设计与应用研究[D].西安:西安电子科技大学,2014.

[3]袁立松.基于SOA的报表服务模型设计[D].秦皇岛:燕山大学,2010.

[4]埃斯波西托,萨尔塔列洛.Microsoft.NET企业级应用架构设计[M].陈黎夫,译.北京:人民邮电出版社,2010.

Design and implementation of batch printing system based on RDLC language

JI Juan,GONG Yi
(Sichuan Radio and TV University,Chengdu 610073,China)

With the rapid development of Internet,information system has been widely used in all ways of life.Graduates fill in the registration form and print archive is cumbersome and complex things in the process of graduate students,on the basis of the traditional manual fill in and print the low efficiency and waste a lot of manpower and material resources,so it is necessary to implement registration management system based on B/S model,submit the work efficiency and convenient students.In view of this,after putting forward the requirements,the difficulties of the system implementation are analyzed in detail,and the technical solutions to the difficulties are worked out.Finally,all the functions of the system are realized and the application of the system is demonstrated.

Graduate registration form;Print;B/S

TP311

A

1673-2022(2017)04-0013-04

2017-09-18

纪娟(1983-),女,安徽安庆人,讲师,硕士,研究方向为计算机网络与分布式系统;龚艺(1979-),女,四川成都人,讲师,硕士,研究方向为计算机软件与技术。

猜你喜欢
市州登记表报表
2021年山西省对口升学考试奖励照顾考生登记表
山西省成人高校招生录取照顾对象登记表
2020年山西省对口升学考试奖励照顾考生登记表
2019年山西省普通高校专升本选拔考试获奖考生照顾加分登记表
从三大报表读懂养猪人的成绩单
2017:市州报社长在谋划什么?
镇长看报表
月度报表
月度报表