范文

位置:首页 > 范文 > 文秘知识

电子公文管理系统设计与实现

发布时间:2022-10-06 13:42:21
1引言

公文是政府军队等各类部门请示汇报、命令下达等工作中的重要部分。传统的公文归档以纸质原件为主,存放在档案局等部门,当归档公文数目逐渐增多时,公文的查找就存在效率较低等缺点。尤其是当用户记不清楚公文的具体年份、标题等内容时,在纸质归档公文中进行基于内容的模糊查询几乎无法实现。另外,纸质公文的管理、维护、防腐等,也需要大量的人力物力支持

随着计算机硬件、局域网设施的普及以及用户计算机水平的不断提高,当前公文的撰写基本都是先完成电子版本,然后再打印传达。因此,将公文的电子版进行归档成为可能[1-2]。实施电子公文的归档管理[3-4],与传统方法相结合,可以在几乎不增加额外劳动量的前提下,对公文的管理、查找、维护工作起到大大的改善效果。

2系统设计

《电子公文管理系统》就是在这样的背景下产生的。其目的是在不改变用户公文撰写流程的前提下,完成电子公文的归档、查询等功能。此外,对历史公文的充分借鉴,还可以提高用户公文撰写格式的规范以及公文内容风格的一致性等。

系统采用标准的客户端-服务器模式(c-s模式),由oracle数据库服务器对电子公文的存储、查询提供支持。客户端软件由delphi实现,包括公文模板管理、公文归档、公文撰写、临时公文管理、公文查询和系统设置六大模块,如图1所示。

“公文模板管理”可以将常用的空白公文模板存储到数据库中,用户可以据此撰写新的公文。“公文撰写”模块可以依据公文模板或已经归档的历史公文,撰写新的公文。用户只需修改其中的内容即可,而不用再过多关心其格式等内容,提高公文撰写的效率。“临时公文管理”对新撰写的公文以及尚未定稿的公文进行管理,支持同一公文的多个不同版本,并可以将临时公文及时上传备份到服务器以防丢失,同时能够方便地从其它机器阅读修改公文。“公文归档”对于已经完成的公文,可以归档录入数据库,以方便将来查阅。系统提供单个公文归档、批量归档等多种归档方式,并能够通过“公文自动分析”功能解析出公文中的项目,如标题、关键字等,减少公文归档的工作量,提高系统可用性和效率;同时还可以将领导签字照片等附件一同录入,以提高公文归档的完整性可用性。“公文查询”模块能够对所有已归档的公文进行高效查询。除了支持灵活的按照各种项目自定义条件查询外,还支持基于内容的查询,即可以查找内容中包含指定文字的所有公文。最后,“系统设置”模块包括不同部门、不同级别用户的用户管理及权限控制功能,灵活的数据库连接参数配置功能等。3关键技术系统实现的主要难点和创新包括以下几个方面:1)公文在oracle数据库中的存取控制;2)公文内容的自动解析和批量归档;3)基于公文内容的全文检索查询;4)本地文档与数据库备份文档的比较及版本控制。

公文在数据库中的存取

一个公文由很多元素组成,如标题、发文机关、公文种类、年份、主题词、引发说明、承办说明、正文等等。在数据库中的存取有两个方案:一是将各种元素分开存储,用户预览全文时再按照公文格式要求合并成一个文档。该方案的好处是分开存储便于用户的查询;不足是当合成新文档是需要考虑公文的格式要求。因为公文类型繁多,因此恢复新文档的操作复杂,而且往往难以完全恢复原样。第二个方案是将整个文档采用二进制方式存储在数据库中。这样的好处是文档的恢复比较简单,但是由于各个元素没有分离,因此在公文的查询方面存在不足,需要解析文档内容并逐个分离出元素信息,效率较低,难以满足快速、灵活的查询需求。共4页,当前第1页1234

通过分析比较,系统采用了一个折中方案:对于除正文以外的其它元素,如标题、发文机关、年份等,在数据库中分别在不同字段中分离存储,以方便用户的查询;同时又将文档本身进行存储,以便于公文的恢复。该方案以一定的存储开销为代价,较好地照顾了查询操作和公文恢复操作。因为除正文以外的其它元素内容很少,通过数据库中的日期型字段、varchar字段等即可满足要求,因此引入的额外开销非常小。实验部分证明了该方法的有效性。

公文文档存放在oracle中的blob字段中,具体是通过delphi中tblobfield类的loadfromfile()和savetofile()方法实现了数据库的存入和读出。

公文内容的自动解析和批量归档

为了解决在公文归档过程中手工输入各种元素信息的效率问题,系统实现了公文内容的自动解析。根据公文格式规定,通过程序对指定的公文进行自动分析,解析出各种元素的内容,然后自动填入数据库。

delphi提供了两个类:twordapplication和tworddocument。前者可以连接到msword应用程序中,后者可以连接到一个word文档。公文中的每一段、每一行以及每一个表格,都可以通过tworddocument对应的如paragraph、line

以及table对象等获得。根据公文承办规定中对相关元素位置、格式的定义,配合识别元素的关键词信息,通过逐段逐行分析,就可以解析得到元素内容。

实现了对一个公文的解析功能,再配合findfirst、findnext以及findclose等windows的api函数的递归调用,就可以查找指定路径下(包括子目录)的所有word文档,然后逐一对之进行解析并将分析结果入库,就可以实现公文批量归档的功能。

公文内容自动解析及批量归档功能的实现,简化了公文归档的工作量,用户只需指定文件或者路径,系统即可自动完成剩余工作,大大提高了公文归档的效率。

基于内容的全文检索查询

指定通过公文标题、发文机关等元素内容,查找满足条件的公文,是基本的数据库查询操作,比较容易实现。但是在公文的查找中存在一类需求,即用户只记得公文的大致内容,如公文内容中包含的几个关键词,但是关于公文更详细的内容如发文时间、发文机关名称等并不清除。在这种情况下需要对公文进行基于内容的全文检索查询。

该功能的实现流程如图2所示。对数据库中的每条记录,均先将对应的word文档保存到本地,然后用delphi的tworddocument类打开。tworddocument类的content属性为range对象,调用其()方法可以在该范围内进行文本查找,功能与word应用程序中调用“编辑-查找”功能菜单一样,不仅可以进行基本的查找,还可以通过参数控制在查找过程中是否区别大小写、是否使用通配符等。如果匹配成功,则该方法返回true,系统为该条记录做好标记,作为查询结果中的一条进行显示。当数据库中所有的记录都处理完后,查询处理结束,所有被标记的记录均为满足条件的结果,即内容中包含指定关键词的公文。

文档版本控制

“临时公文管理”模块主要是将正在撰写尚未正式定稿的公文存放到数据库中进行备份,同时支持同一稿件在撰写修改过程中产生的多个不同版本维护功能。文档修改前后的比较、版本控制是这一模块的主要技术点。共4页,当前第2页1234

范文相关阅读

范文热点