WEB环境下办公自动化文档修改痕迹保留的实现

发表于:2007-06-30来源:作者:点击数: 标签:
WEB环境下办公自动化文档修改痕迹保留的实现 一、痕迹保留的现状与思考 随着政府机关和许多企事业单位 网络 建设逐步完成,对于在如何利用网络,如何表现出网络的优势方面,用户最容易想到,同时也是最容易产生效果的应用,就是办公自动化系统(OA)。在当前的
WEB环境下办公自动化文档修改痕迹保留的实现

一、痕迹保留的现状与思考

随着政府机关和许多企事业单位网络建设逐步完成,对于在如何利用网络,如何表现出网络的优势方面,用户最容易想到,同时也是最容易产生效果的应用,就是办公自动化系统(OA)。在当前的软件开发实践中,B/S模式(浏览器/服务器模式)的开发可以采用三层结构,前端服务层、中间业务层、后台数据库。由于其扩展性好,数据安全性高,同时无须考虑客户端的兼容性,解决了C/S模式二层结构的诸多局限性,因而在办公自动化系统中得到了广泛的应用。

修改痕迹的保留是办公自动化系统的一个难点,很多基于B/S模式的OA系统处理的方法是:Word文件只是简单的作为一个表单附件,在需要使用的时候调出来进行操作。但这一方法的缺点是没有对Word文档进行相关的控制。公文所要求的格式需要流程走完后由秘书或相关人员对Word文档进行相关处理,生成正式文件,在打印时无法满足国家对公文格式的要求。还有一种做法就是使用一个RTF域来代替Word,但这样做是以牺牲了用户的习惯和字处理功能为代价的,而且效果往往不见得理想。

目前,修改痕迹的保留较好的处理办法有两种,一种是重新设计专用编辑器,另一种是调用MS Office字处理软件,通过对Word的编程,实现对修改痕迹的保留。从理论和实践上来看,第一种办法比较好,利用嵌入在HTML页面内的专用图文混排控件,我们可以方便的加强客户端的显示及处理功能,减少开发工作量,提高软件质量。

二、第三方控件的介绍

办公之星控件(OStarOCX)是智岛软件公司推出的一款基于图文混排的文档处理控件(类似Word的控件),办公之星控件(OStarOCX)完全封装了办公之星的文字、图形、表格、图表等功能,提供了几百个编程接口;在ERP、CRM、HR、OA等系统里,开发难度非常大的文档处理、统计、报表等输出功能都可由办公之星控件(OStarOCX)轻松实现,其所见即所得的效果跟现实里的完全一样。办公之星控件(OStarOCX)是一个标准的OCX控件,适用于Windows环境的各种开发工具(如VB,VC,Delphi, C+Builder, PB, Java等), 并且针对Web开发环境做了大量的优化。

三、痕迹保留的具体实现

第三方控件在WEB环境下办公自动化程序中的运用,极大丰富了办公自动化程序的功能和应用范围。要在WEB环境中使用办公之星控件,必须首先将控件加入WEB编程环境,然后我们就可使用办公之星控件的各种接口了。

1. 办公之星控件相关接口方法说明

方法 BSTR GetCurUser() 返回当前用户名称
方法 SetCurUser(LPCTSTR strName) 设置当前用户名称
方法 SetEmendState(BOOL bEmend) 设置修订状态.b为TRUE时为修订状态,为FALSE时为非修订状态
方法 BOOL GetEmendState() 返回修订状态.b为TRUE时为修订状态,为FALSE时为非修订状态
方法 ShowEmendDlg() 显示接受或拒绝修订对话框
方法 PrevFindEmend() 往后查找修订
方法 NextFindEmend() 向前查找修订
方法 Aclearcase/" target="_blank" >cceptEmend() 接受单个修订
方法 AcceptAllEmend() 接受所有修订
方法 RefuseEmend() 拒绝单个修订
方法 RefuseAllEmend() 拒绝所有修订

2. 设定批改文档的用户

默认状态下文档的修改用户为超级管理员(admin),在对文档进行操作前我们通常要设定批改操作的用户。例:

OStar.SetCurUser("张三")

上述代码(javascript脚本)设定当前文档的操作者为“张三”。上面代码中“OStar”(下面代码同)是程序中标识办公之星控件的惟一名字,在插入控件时通过id进行设置。

3. 实现对修改的留痕

在web文档里做一按钮,实现对修改留痕的控制。该按钮实现功能源程序(javascript脚本)为:

if(OStar.GetEmendState()){
OStar.SetEmendState(0);
window.status="";
}else{
OStar.SetEmendState(1);
window.status="修订中...";
}

该按钮为一开关按钮,能够在留痕与正常编辑状态间切换。

4. 查看修改

各操作按钮功能及实现代码如下:

function PrevFindEmend(){
OStar.PrevFindEmend();//前一处修订
}

function NextFindEmend(){
OStar.NextFindEmend();//下一处修订
}

5. 接受或拒绝修改

各操作按钮功能及实现代码如下:

function AcceptEmend(){
OStar.AcceptEmend();//接受修订
}

function RefuseEmend(){
OStar.RefuseEmend();//拒绝修订
}

function AcceptAllEmend(){
OStar.AcceptAllEmend();//全部接受
}

function RefuseAllEmend(){
OStar.RefuseAllEmend;//全部拒绝
}

四、痕迹保留实现效果

通过上述编程,实现了OA与图文混排文档的无缝集成,保证了所有对于修改痕迹的恶意操作都无法通过系统的认可,确保批改人员的修改意图不被扭曲或是误解,保证了信息交流的安全性。同时可以充分利用办公之星控件强大的编辑功能,随时查阅领导修改和批注的要点,又避免了成文后打印前存在的成文版本与打印文本有出入的漏洞,可以明确各个环节的责任。痕迹保留实现的效果如下图:

原文转自:http://www.ltesting.net