• 您的位置我爱Aspx >> VC.Net >> 如何实现多人审批同一文档
  • 如何实现多人审批同一文档

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:47:22  关键字:
  • 如何实现多人审批同一文档

    首先,Lotus Notes作为一个文档型的数据库,并未提供记录(文档)的锁定。

    因而作为一个面向群组的文档,如果不采取措施,将会发生文档的编辑和保存冲突,这

    是显然的。Lotus 提供了复制技术和版本控制技术,但是,由于应用的复杂性,尚且不

    能满足我们的要求。于是许多人都想用编程控制的方法实现这种控制。

    在这里,我们主要讨论关于编程的方法,关于复制和版本控制另作讨论。

    (二)

    解决方法之一:加锁

    加锁分为两种,一种是文档锁,一种是自锁。两种方式各有利弊。但是通常的方式是文档锁。

    一、文档锁:

    所谓文档锁就是对目标文档建立一个附属文档,利用附属文档对目标文档进行锁定。

    具体描述如下:

    附属文档通常和目标文档建立一对一的连接。

    在附属文档中设立状态域,标识对目标文档拥有编辑权限(保存权限)的用户属性。

    在目标文档被编辑并且保存时,把当前状态写入附属文档的状态域,从而为文档加了锁。如果有

    其他用户试图保存时,首先检测附属文档,判断状态域,如果不符合保存条件,取消保存。从而

    避免了冲突。

    值得注意的是;加了锁定的文档,一定要在操作结束时解锁,也即复位附属文档的状态域。

    二、自锁:

    所谓自锁,就是在文档中设立状态域,在此文档第一次保存时修改此状态域的值,记录文档当前

    拥有编辑保存的权限的用户信息。此后的用户打开文档时,首先判断状态域的值,若有人正在编

    辑,则不进入编辑状态,从而避免了冲突。此种方式同样需要解锁。

    三、两种方法的比较:

    原理上是一致的。

    但是我们知道当目标文档加锁后,解锁前,如果发生意外,如断电,死机等情况使得来不及解锁,

    就关闭了文档。再次打开时,已经成了死文档,不能进行修改了(除非管理员)。采用第二种方

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:校园网接入Internet方案一例
    下一篇:论语言选择的关键
  • 相关文章