APP下载

基于OLE的公文自动生成系统的研究与设计

2016-04-11胡胜利武西康万晋军

电脑知识与技术 2016年4期

胡胜利+武西康+万晋军

摘要:针对凤台县水利局水资源管理公文依然采用手工管理的现状,提出了公文自动生成系统的设计方案。根据系统需求分析,给出了系统结构设计,重点对其中的关键技术进行了详细描述,包括自动生成公文和数据库的存储。系统采用OLE技术和RAD开发工具Delphi来实现,通过系统的实际运行,证明了方案的正确性。

关键词:OLE;公文管理;Delphi;RAD

中图分类号:TP317 文献标识码:A 文章编号:1009-3044(2016)04-0084-03

Research and Design of Document Management System Based on OLE

HU Sheng-li1, WU Xi-kang1, WAN Jin-jun2

(1. School of Computer Science And Engineering, Anhui University of Science and Technology, Huainan 232001, China; 2. Anhui Huainan Water Conservation Bureau, Huainan 232001, China)

Abstract: Aiming at the manual method for document in Fengtai water conservation bureau, the design of document management system is given. Firstly, according to the requirement analysis, it introduces the design of system structure. Secondly, the key points are described in detail, include the automatic creation of document and query of database. Finally, the system is realized by Delphi and OLE. It has been proved by application that the system has good reliability.

Key words: OLE; document management; Delphi; RAD

1 背景

目前,凤台县水利局水资源管理中的许多文件依然采用手工管理方式。随着水资源管理的日趋严格,公文数目逐渐增多,手工管理方式逐步无法满足需要,如公文的查找效率较低。特别是管理人员记不清楚公文的具体年份、标题等内容时,在纸质归档公文中无法进行基于内容的模糊查询。另外,纸质公文的管理、维护、防腐等也需要大量的人力、物力支持[1]。

本文利用OLE技术和数据库管理技术,设计了一个公文自动管理系统。在不改变用户公文撰写流程的前提下,完成了电子公文的自动生成、打印、归档和查询等功能,大大提高了管理和办公的效率。

2 系统分析和设计

根据水资源公文管理的需要,系统功能包括公文的自动生成、公文存档、公文查询、系统设置四个主要模块,如图1所示。

1)公文的自动生成:根据现有的公文模板或已经归档的历史公文来撰写新的公文。用户只需修改公文的相关内容即可,如公文发文时间、文号、标题等。公文格式执行《国家行政机关公文格式》国家标准(GB/T9704-1999)[2]。

2)公文的存档:将公文信息存入数据库,以方便将来查询。采用单个公文存储和批量存储两种方式。另外,还可以将领导签字照片等附件一同存储,这样可保证公文信息的完整性。

3)公文查询:对已经存储到数据库中的公文进行历史查询。支持的方式有自定义条件的精确查询、模糊查询外和基于内容的查询等多种方式,以提高查询效率。

4)系统设置:完成系统各个功能模块的设置。如部门管理模块、用户管理模块、权限设置、数据库连接模块和数据备份模块等。

3 关键技术

系统中关键部分的实现主要包括以下内容:1)公文的自动生成;2)公文在数据库中的存取操作。

3.1 公文自动生成功能

公文的自动生成主要是利用各种现有的模板模板自动生成符合要求的各种文档。目前现有的各种模板主要是水政执法管理的各种文件,比如征收水土保持补偿费的通知、水行政处罚告知书等。主要公文类型如图2所示:

根据公文的文件格式,系统利用OLE技术来调用微软的WORD软件来完成公文自动生成[3,4]。主要实现步骤为:

1)在WORD软件中定义各个公文的模板文件并存储。比如取水行政许可决定书可命名保存为qushui.dot。

2)分别对各个模版文件中需要插入公文内容的地方设置书签Bookmark。

3)利用OLE在代码中打开模板文件,对定义的Bookmark进行内容赋值。

核心代码如下:

var

wordapp:Variant;

try

wordapp:=GetActiveOleObject('word.Application'); //------------生成OLE对象

except

wordapp:=CreateOleObject('word.Application');

end;

for I := 1 to wordApp.ActiveDocument.Bookmarks.Count do

begin

ItemIndex := I;

vBookMark := wordApp.ActiveDocument.Bookmarks.Item(ItemIndex); //--定义书签

if LowerCase(vBookMark.Name) = 'hedaocsnd' then

begin

vBookMark.Select();

wordApp.Selection.InsertAfter(trim(edit1.text)); // 插入公文内容

end;

end;

3.2 公文存储在数据库中的方式

为了能实现基于公文内容的查询,提高查询效率,系统除了将公文的关键字等信息保存在数据库中外,还将正文内容以二进流的方式存储到数据库中。在Delphi中对数据流的操作通过TStream类实现,如图3所示。使用TMemoryStream 和TBlobStream两个子类来实现公文正文内容的存储。

核心代码如下:

var

MS: TMemoryStream;

str: string;

begin

MS := TMemoryStream.Create; // 生成TMemoryStream对象

edit1.text.savetostream(MS);

str.savetostream(MS)

ADOQuery2.SQL.Add('insert into 公文 values(:str)'); //把内容保存到数据库中

ADOQuery2.parameters.parambyname('str').value.loadfromstream(MS);

end;

4 系统实现

系统采用Delphi 7.0作为开发工具[5],数据库服务器安装MS SQL 2005 Server。目前,该系统运行良好,有效地提高了公文的管理效率。公文生成的运行界面如图4所示。

5 结束语

本文使用OLE和SQL数据库技术设计,设计和实现了一个公文自动管理系统,给出了系统的结构设计和实现的关键代码。随着互联网的普及,公文的在线自动生成管理将是下一步研究的目标。

参考文献:

[1] 单玉刚, 张荣茂. 面向电子政务的公文管理系统开发与应用[J]. 小型微型计算机系统, 2003, 24(3): 606-607.

[2] 杨忠. 公文格式编辑自动化设计与实现[J]. 通讯世界, 2015(23).

[3] 梁海珍. 公文自动生成系统的设计与实现[J]. 计算机时代, 2008(9): 65-66.

[4] 杨武. 电子公文管理系统设计与实现[J]. 电脑知识与技术, 2008, 4(3): 631-632.

[5] 吴志辉. 用Delphi 开发共享软件[M]. 北京: 化学工业出版社, 2009.