基于Web 2.0的科技查新档案管理系统设计和实现
2016-01-13石蕾
基于Web 2.0的科技查新档案管理系统设计和实现
石蕾
(西安交通大学,710061)
摘要:文章分析当前查新机构对查新档案管理系统的需求,从系统设计的角度介绍了基于富客户端和DWR技术的查新档案管理系统的技术方案、关键技术和实现方法。
关键词:查新档案;web2.0;DWR;JfreeChat;档案管理;富客户端技术
中图分类号:G250.7
文献标识码:A
文章编号:1006-1525(2015)01-0050-05
Abstract:After analyzing the requirements of current Sci-Tech Novelty Retrieval organizations for Sci-Tech Novelty Retrieval Archive Management System, the article makes an introduction to the rich clients and DWR technology based on the Sci-Tech Novelty Retrieval Archive Management System, examines the technical solutions, key technologies and implementation methods from the design of the system.
作者简介:石蕾,女,馆员。
收稿日期:2014-06-10
Design and implementation of Sci-tech Novelty Retrieval Archive Management System based on Web 2.0
SHI Lei
(Xi’an Jiaotong University, Xi’an710061, China )
Key words: Sci-Tech Novelty Retrieval Archive; web2.0; DWR; JfreeChat
1引言
查新档案基本分为文书档案和项目档案两大类。文书档案包括上级下发给查新机构的各种有关查新的规定、细则等,查新机构制定的各种有关查新的规章制度、查新机构的年检材料和查新工作总结、查新项目登记、查新咨询专家数据库和有关业绩材料,以及查新人员在工作中所获成果、发表的著作和论文等有关资料。对于文书档案应当立卷保管,按年度归档,长期保存。项目档案包括查新合同、查新报告、查新项目的主要科学技术资料、查新咨询专家的书面咨询意见及查新人员的工作纪录等[1,2]。
目前,各查新站不但保存查新档案的印刷版,而且保存查新档案的电子版。印刷版采用传统的文档盒保存,电子版采用Email或FTP服务器上传给查新档案管理人员,查新档案管理人员制作excel电子表格登记每个查新报告的目录信息。这样的管理方式不但增加了档案管理人员的工作量,而且不方便工作统计分析。部分高校采用了web版的查新档案管理,但都停留在简单的目录提交和查询,没有自动从用户填写的合同中提取数据、统计分析模块和导入导出word、excel功能。由于客户端未采用ajax技术,所以页面的动态性和用户体验较差。
本文拟采用一种流行的富客户端技术ExtJS框架开发用户界面,以提高页面的动态性和用户体验。后台采用跨平台java语言和mysql数据库。查新档案数据分析采用了JfreeChat库生成各种图表进行直观显示。为了减少输入查新目录的工作量,采用POI类库从查新合同word文件中提取相应字段导入后台数据库。由于以前采用的是excel电子表格管理数据,为了导入以前的数据,我们增加了excel导入导出模块,所有的查新目录信息可以直接从excel导入,也可以将数据库的信息导出为excel表格,再进行数据分析。
2需求分析
根据查新档案管理人员提出的功能要求,通过对系统流程、功能模块、技术方法等方面进行详细设计,并最终完成整个系统的开发。系统采用B/S结构模式,主要包括数据的增删改查、数据分析图形化显示、电子版全文提交、导入导出word、excel文档。
系统主要完成以下目标:(1)基于web形式的档案分布式管理;(2)查新人员可以从浏览器输入数据,从查新合同导入数据,从excel表格导入数据,将数据导出为word或excel文档。通过web界面提交查新报告全文,报告全文会自动和目录信息进行超链接关联。(3)可以按照各种字段组合查询数据,有权限用户可以直接打开查新报告全文。(4)对查新档案进行统计分析,结果为图或者报表的形式。
3系统实现
3.1 实现平台
本系统采用B/S架构,数据库采用mysql,后台编程采用java编程语言,用户界面全部采用ExtJS框架,导入导出word或excel文档采用dwr类库直接调用后台Java类,结果分析采用JfreeChat类库生产图表,开发环境采用MyEclipse,应用服务采用tomcat容器,系统运行环境采用redhat操作系统。
3.2 功能模块
科技查新档案管理系统可以分为以下3个大模块:(1)查新管理模块。该模块包括以下几个部分,数据的增、删、改、查,导入word合同,导入excel表格,导出excel表格,生成报表。在该界面查新人员可以手动录入查新目录数据,可以直接从用户填写的word合同中提取表格数据导入系统,可以将原来的excel电子表格导入系统,或将系统现有数据导出为excel表格。(2)结果分析模块。该模块可以通过以下几个方面进行分析:查新员、查新范围、查新类别和查新级别。在进行任何分析的时候可以进行时间限制。分析结果最终以柱状图形式显示。(3)全文提交模块。该模块主要用来提交查新报告的全文。提交全文的时候,以查新报告编号命名文档,这样提交到服务器上的查新报告可以自动和检索窗口的查新报告书目产生超链接,有权限的用户可以通过点击链接直接打开查新报告全文。由于B/S结构中服务器端不能直接操作客户端文件,所以要实现查新合同和excel电子表格的导入就必须先通过该模块将合同或excel电子表格上传到服务器,然后才能在查新管理模块进行导入操作。(4)用户管理模块。包括用户信息的增删改查以及权限设置。权限包括三级。1代表最高权限,可以对系统数据和用户数据进行删除和修改操作。2代表次级权限,可以提交、修改和查询数据。权限3仅能够查询查新档案的书目信息,但不能链接查新报告全文。
3.3 数据库设计
基于对系统功能模块分析,系统所需数据主要包括查新目录信息、查新人员信息和系统访问日志信息等。基于此,在mysql数据库中建立三张数据库表。具体表结构如下:
(1)查新目录信息表
该表存储查新档案的所有字段信息,具体结构如表1所示:
表1 查新目录信息表
(2)用户信息表
该表存储用户信息,具体结构如表2所示:
表2 用户信息表
(3)日志表
该表主要存储用户登录的IP地址信息,具体结构如表3所示:
表3 日志表
3.4 关键技术及实现
(1)ExtJS富客户端开发
ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架[3]。本系统用户界面采用了ExtJS2.0框架,实现查新目录数据列表以及用户管理界面。用户可以实现无刷新页面提交数据,可以隐藏或显示任何一列数据,可以动态按照任何一列进行排序。开发过程将js代码和jsp代码分离。在jsp代码中引入js代码如下:
href="js/resources/css/ext-all.css" />
引入ExtJS框架顺序一定要完全按照上面代码顺序,否则系统会报错。
(2)DWR(Direct Web Remoting)
DWR是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含Ajax技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样[4]。本系统在服务器端有三个类供客户的js代码直接调用。服务器端三个类分别为:①DaoWord.java,该类包括了一个public static void daoWord(String str)方法,实现从word文档合同中提取字段信息,然后写进后台数据库。②DaoExcel.java,该类包括了一个public static void daoExcel(String str)方法,实现从Excel文档中提取表格数据,然后写进后台数据库。③DaocExcel.java,该类包括了一个public static void daocExcel(String str)方法,实现将后台数据库中的书目信息导出为excel电子表格。客户的js代码调用上述三个类方法代码如下:
document.write(" ");
document.write(" ");
document.write(" ");
document.write(" ");
document.write(" ");
function daochu(str2, str3, str4, str5) {//导出excel
DaocExcel. daocExcel (str2, str3, str4, str5, callback1);};
function daoru(str) { //导入excel
DaocExcel. daoExcel (str, callback2);};
function daoword(str1) {//导入word
DaoWord.daoWord(str1, callback3);};
function callback1() {//提供给dwr框架的回调函数};
function callback2() {//提供给dwr框架的回调函数};
function callback3() {//提供给dwr框架的回调函数};
(3)Apache POI
Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取、创建和修改MS Excel文件,或者读取、创建MS Word和MSPowerPoint文件[5]。本系统DaoWord.java、DaoExcel.java、DaocExcel.java三个类中使用了POI类库。三个类中使用POI类库代码如下:
DaoWord.java
// 读取word单元格,导入word表格信息
FileInputStream in = new FileInputStream("d:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\extjs\fileupload\hetong.doc");// 载入文档
POIFSFileSystem pfs = new POIFSFileSystem(in);
HWPFDocument hwpf = new HWPFDocument(pfs);
Range range = hwpf.getRange();// 得到文档的读取范围
TableIterator it = new TableIterator(range);// 迭代文档中的表格
DaoExcel.java
// 创建对Excel工作簿文件的引用,导入excel单元格
HSSFWorkbook workbook
=new HSSFWorkbook(new FileInputStream(fileToBeRead));// 创建对工作表的引用
HSSFSheet sheet = null;
HSSFCell cell = null;
sheet = workbook.getSheetAt(0); // 读取左上端单元
DaocExcel.java
//创建新的Excel 工作簿,当数据中的数据导出到新的excel表格中
HSSFWorkbook workbook
=new HSSF Workbook(); // 在Excel工作簿中建一工作表,其名为缺省值
HSSFRow row = null; // 在索引0的位置创建行(第一行)
HSSFCell cell = null; // 在索引0的位置创建单元格(第一列)
(4)JfreeChart
JFreeChart是JAVA平台上一个开放的图表绘制类库,完全使用JAVA语言编写,是为使用applications、applets、 servlets 以及JSP等而设计。JFreeChart主要用来制作各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等[6]。本系统在结果分析中使用该类库生成柱状图,用户可以按照一定的条件进行结果分析,并且生成柱状图。部分代码如下:
if (cxtj. equals("czhuman")) {
dataset = new DefaultCategoryDataset();
dataset.addValue(count, " ", "张三");
dataset.addValue(count1, " ", "李四");
dataset.addValue(count2, " ", "王五");
dataset.addValue(count2, " ", "小张");
dataset.addValue(count4, " ", "小刘");
hart =ChartFactory.createBarChart3D("查新数量柱状图", "查新员", "数量",
dataset, PlotOrientation.VERTICAL, false, false, false);
filename =ServletUtilities.saveChartAsPNG(chart, 500, 300,
null, session);
graphURL=request.getContextPath()
+ "/servlet/ Display Chart? filename =" + filename;
} else if (cxtj.equals("wtunit")) {
dataset = new DefaultCategoryDataset();
dataset.addValue(count, " ", "校外");
dataset.addValue(count1, " ", "电信学院");
dataset.addValue(count2, " ", "机械学院");
dataset.addValue(count3, " ", "能动学院");
dataset.addValue(count4, " ", "理学院");
dataset.addValue(count5, " ", "材料学院");
dataset.addValue(count6, " ", "医学院");
dataset.addValue(count7, " ", "航天学院");
dataset.addValue(count8, " ", "软件学院");
chart =ChartFactory.createBarChart3D("查新数量柱状图", "查新范围", "数量",
dataset, PlotOrientation.VERTICAL, false, false, false);
filename=ServletUtilities.saveChartAsPNG(chart, 500, 300,
null, session);
graphURL=request.getContextPath()
+ "/servlet/DisplayChart?filename=" + filename; }
4应用实例
本系统在开发的过程中受到西安交通大学图书馆课题基金资助。从2010年来一直用于教育部西安交通大学查新工作站查新档案的管理。查新人员和档案管理人员反映良好。图1、2、3为系统运行时截图。
图1系统主界面
图2 新增数据界面
图3 结果分析柱状图
5结语
本文就查新档案管理工作进行了系统的研究,通过详细的分析和设计,将档案管理过程中许多繁琐的人工处理转变为计算机自动处理。如:不需要查新员或档案管理人员进行手工录入信息,而是自动从用户填写的合同中直接提取;查新员在书写查新报告时不需要对合同的信息进行拷贝粘贴,而是直接从合同中提取到查新报告中,省去了许多繁琐的工作;对工作进行统计时,可以按照不同的条件生成柱状图,极大地方便了工作量的统计。工作的下一步目标是将原来设计的查新用户合同提交系统,由该系统进行集成。
参考文献:
[1] 祁卓麟.科技查新档案的管理工作[J].科技文献信息管理,2010,(1):38-40.
[2] 黄春晓,袁玉花.科技查新档案管理的初探[J].农业图书情报学刊,2010,(7):108-109+118.
[3] http://www.sencha.com/.
[4] http://directwebremoting.org/dwr/.
[5] http://poi.apache.org/.
[6] http://www.jfree.org/jfreechart/.
(责任编辑:朱爱瑜)