This paper presents a designation of sci-tech novelty searching project management based on VBA, which supports off-line working and protects the documents of sci-tech novelty searching project, and reduces the investment for software.
截至2010年底,全国高校教育部查新工作站已超过70个。如何充分利用计算机技术,提高本地查新信息管理系统的效益,并解决不同查新信息管理系统的数据共享问题,是各查新站亟需解决的问题。华东理工大学科技查新工作站于2006年开发了基于浏览器/服务器(B/S)架构的电子化查新档案管理系统,由于系统的所有操作均只能在线进行,因此委托用户和查新员的使用情况都不尽如人意。用户对在网页上录入信息后再生成查新合同或查新报告的方式非常不习惯,特别是当工作机处于离线状态时,只能先用Word软件编写合同和报告,一旦工作机在线,由查新员将合同信息和报告信息录入系统,最后由查新站的总负责人上传至教育部的查新信息系统中。分析上述工作流程及有关查新管理系统的文献,发现当前的查新信息管理系统存在以下问题:离线办公问题的客观存在,导致多个环节工作量的增加。
经过文献调研,笔者发现,如果将VBA技术引入用户和查新员习惯使用的Word文档中,将可以极大地提升查新信息管理各个环节的效益。本文的目的就是要借助Office办公软件及VBA技术研制一种新型的查新管理系统,以解决上述问题。
VBA 是应用程序开发语言Visual Basic 的子集,可在Word、Excel、PowerPoint上进行二次开发,以达到简化Office办公文档中繁琐、重复工作的目的。近年来直接基于VBA的信息系统越来越多,涉及各个行业,如地面气象资料转换系统[ 1]、试卷编辑系统[ 2]、学生成绩管理系统[ 3]、通用财务自动登账系统[ 4]、地质图件系统[ 5]、射频网络分析仪自动校准系统[ 6]、英语等级考试报名系统[ 7]等。这些系统充分利用用户对Office办公软件的依赖,使用VBA技术进一步提升了常用Office办公软件的性能,从而提高了工作效率。
已有的多数查新系统的功能基本包括查新申请、受理、状态查新、报告录入、审核、查询、查询结果及报告打印[ 8, 9, 10, 11, 12, 13, 14],一些特别的设计包括对项目的新颖性、实用性、创造性及申报课题的可行性的自动评价功能、自动分类功能[ 15]、语音服务[ 16]。受自然语言技术发展的限制,目前还未见具有自动评价功能的成熟系统的应用。
近年来涌现的查新信息管理系统架构模式主要以B/S或C/S与B/S的混合模式为主,如笔者所在单位目前使用的查新管理也采用B/S模式,此模式可实现基于Web的动态查询服务,也可完成查新合同及报告的打印,但一般只能将查询结果或查新合同报告等信息打印在网页上或者生成Word文档。在混合模式中,由客户端程序实现打印及排版服务。现有的客户端开发环境采用Visual Basic6.0[ 8, 9]、PowerBuilder[ 10, 11]、Visual FoxPro[ 12]、J2EE[ 13]等,查新服务人员需要安装独立的客户端。
尽管查新过程中两个重要的档案文件为标准格式的Word文档,一些查新管理系统在满足这一要求方面已经涉及Office办公软件中自带的VBA技术,但这种应用仅停留在从外部访问Word文档方面,没有充分利用VBA的优势实现面向办公的查新管理系统,所采用的离线解决方案增加了重复工作量,没有对以Word文档为主的查新文档采取加密措施。
本文试图将VBA技术与数据库管理系统及邮件系统充分融合,简化面向客户的Web服务程序,设计基于VBA技术的面向办公的查新管理系统,在解决离线信息编辑及查新文档的加密问题的同时,提高查新工作的整体效率及查新文档的安全性。
运行环境:Windows XP及以上操作系统,配以微软的 Office办公套件,Windows Web 服务(Windows IIS)。
数据库管理系统:MS SQL Server2000以上。
设计工具:Visual Basic Application for Office,安装Office2007办公套件时选择缺省安装。
系统主要实现以下功能:
(1)常见问题:集中介绍查新委托过程中出现的常见问题。
(2)项目进度通报:查新项目自接受委托起,即进入查新项目的流转流程,将流程中的状态变化信息直接通过邮件的方式发给相关人员。
(3)查新项目分配:直接指定查新员,根据查新员的学科方向、可用工作量确定查新员。
(4)查新合同及报告撰写:指导查新员按指定格式撰写查新报告。
(5)查新项目统计:查新员根据姓名和时间统计个人的查新项目明细,查新组长根据时间获得各查新员的项目明细,并以Excel表格文件输出统计结果。
整个系统的运行主要围绕不同的操作员角色在权限许可情况下对相应的Office文档进行操作,每一个操作完成后即引起查新项目状态的不断变化,直至最后完成。查新项目状态主要有以下几种:合同草稿(对应合同起草状态)、等待接收委托(对应合同已提交)、拒绝委托、已分配、报告草稿、沟通完毕、待审核、已审核、已打印、已取等。
每个查新项目的状态、系统操作角色动作、系统操作等的流转过程如图1所示。
图1所示的流程从委托人起草查新合同开始,合同提交后,查新协调员决定受理该查新时,即为该项目指定合适的查新员,查新员接受指派后,完成查新报告撰写工作,委托人对报告满意后由审核员审核,审核员确认合格后,查新员打印报告并签字盖章,委托人取走报告并进行服务评价,系统及时将有关信息通过邮件通知相关人员,相关人员根据邮件提示处理相关事务。
根据系统运行及查新项目的特征信息的需要,设计以下数据表:查新员表、查新项目信息表、查新项目附件表、查新沟通表、委托联系人表、委托单位表,一位查新员可以对应多条查新项目信息,一个查新项目信息表对应多条查新项目附件信息、多条查新沟通信息记录,一个委托单位对应多个委托联系人记录,一个委托人记录对应多条查新项目信息,查新员与委托人通过查新项目发生关联,数据库结构如图2所示:
本系统的实现主要包括两部分:查新项目流转及查新文档的版面控制。日常遇到的版面控制,如图表的插入、关键信息防改写等的实现技术主要参考文献[17],以下主要介绍查新项目流转环节的关键技术。
(1)离线工作问题
在查新项目处理过程中,相关人员的计算机可能无法连接服务器数据库。在查新项目合同及报告文档首页设置是否更新至数据库隐藏域(online,默认值为‘0’),更新项目信息时,首先更新当前文档,如果在线,则同时更新系统数据库并置online域值为‘1’;否则,置online域值为‘0’。 若online=‘0’,则相关人员打开合同或报告文档时,系统立即将当前文档中的信息保存至服务器,如果工作机仍处于离线状态,则提示操作人员。用户在线时,更新查新项目至服务器的操作全部由系统后台自动完成,没有任何新增的操作,大大提高了用户友好性和系统易用性。
(2)查新文档的访问控制问题
在查新文档中增加两个隐含的密码域,分别存放访问并修改文档的密码(为随机字符串),当委托人首次填写查新委托信息及查新员确认接受该查新项目时,系统提示其下次修改文档的密码,同时保存在密码域及后台的数据库中,并发送至相关人员的邮箱。系统在查新项目状态发生变化时利用系统数据库中保存的邮箱地址给相关人员发送提示信息及访问密码。为Office文档增加访问控制密码的方法参见文献[17]。
(3)代码安全问题
将VBA中的代码移植到VB中开发成动态链接库,防止VBA由于代码易公开而造成的信息泄露[ 16],同时采用锁定共用模版的方式设置查看工程属性的密码[ 17]。
(4)查新项目状态及相关信息的及时通报问题
在Word文档的VBA代码中,将不同状态设置信息更新到查新状态表中[ 20],并将状态更改信息情况发送至委托人及查新协调人的邮箱,并同时完成该状态对应操作信息的发送。发送邮件的任务由服务器端的数据表触发器统一完成,具体设置方法参见文献[18]和文献[19]。
(5)接收项目委托并发配任务
①查新协调员收到邮件通知后,打开查新项目表Excel文件,单击相应查新项目的状态列,选择状态为“接受委托处理中”,系统自动分配给该项目新的项目编号,同时调用“查找查新员”过程找到相应的查新员;
②服务器端的触发器将该查新项目编号通过邮件发送给查新员;
③查新员打开查新报告文件模版,在弹出的窗体中输入该项目编号,系统自动将该项目的所有重要信息显示在报告文件中,在报告文件的首页,设置“接收项目”和“拒绝项目”按钮;
④点击“接收项目”按钮,系统将查新项目记录的查新员ID字段更改为相应查新员的ID号,并由服务器端的触发器给查新委托联系人发送邮件告知项目委托已被接收及查新员的联系方式等信息,同时修改查新员当前业务量及总业务量信息;
⑤点击“拒绝项目”按钮,系统将由服务器端的触发器给查新协调员发送邮件通知此消息,查新协调员打开查新项目表Excel文件,为查新项目选择新的查新员,重新执行步骤②。
查找查新员过程代码如下:
Create procedure findcxy @xmid int output as
begin
—@xmid为委托人提交项目合同后,系统自动分配的唯一标识号,@cxy 为找到的查新员姓名,如果未找到,则为“未找到”
Declare @xk varchar(100)
—@xk为委托人设定且经过查新协调人认定的查新项目所属学科
Set @xk=′′
Select @xk=学科 from 查新项目 where id=@xmid
—找到指定查新项目所属学科
select * from 查新员 where (专业1=@xk or 专业2=@xk or 专业3=@xk or 专业1=′全部′) and 当前任务量<最大可承受量 order by 总业务量
—查找可接受该学科的查新员按总业务量由小到大排序
End
(6)更新查新项目信息至教育部查新管理系统的问题
在教育部查新管理系统提供的查新项目信息统计表的Excel文档模版中创建“提取项目信息”按钮,用以提取一段时间内本查新站所有的项目信息,保存文件后再上传至教育部的查新项目管理系统中。
本文重点讨论了在Office办公文档中利用VBA,结合数据库管理系统实现面向Office文档、邮件系统等常用办公环境的查新管理系统。本系统的开发工具为VB、VBA及Microsoft SQL数据库管理系统,但委托人和查新相关人员只需使用特定的Office办公文档,借助办公环境的邮件系统,就能高效完成查新各环节的工作。相比已有的查新管理系统,具有用户程序简单的优势。
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|
[17] |
|
[18] |
|
[19] |
|
[20] |
|