ccidnet????

出版日期:2001-10-29 总期号:1067 本年期号:82

本期导读
要闻综合
电脑工作室
渠道与市场
产品与应用
软件与服务
东北专刊
华东专刊
华南专刊
华中专刊
西北专刊
西南专刊
InfoTimes
在Lotus中实现修改痕迹的保留

江恭和

  在众多的办公自动化软件中,一般都会提及文档修改痕迹保留这一功能,它能真实地记录文档在流转中被修改的内容,而其中大多数办公自动化产品都是通过Lotus Notes与微软的Word相结合来实现的。下面,笔者将举一个简单的例子来说明其实现这一功能的通用方法。


  创建库表


  创建一个新数据库和一个新表单,在表单中创建一个RTF域,取名为“Body”。Lotus 的RTF域可以嵌入并显示OLE对象,此“Body”域用来创建一个Word对象。接着创建三个操作按钮分别取名为“拟正文”、“隐藏痕迹”和“查看痕迹”。


  代码实现


  下面是实现修改痕迹保留的具体代码。

  1.“拟正文”操作按钮功能及实现代码如下:

  实现在“Body”域中创建一个Word(OLE)对象,用来存储文档的正文。

   Sub Click(Source As Button)

   Dim session As New NotesSession

   Dim workspace As New NotesUI- Workspace

   Dim uidoc As NotesUIDocument

   Set uidoc=workspace.CurrentDocument

   Dim doc As NotesDocument

   Set doc=uidoc.Document

   user = session.commonUserName

   uidoc.gotofield("Body")

   If (doc.HasEmbedded) Then

   Set rtitem=doc.GetFirstItem("Body")

   Set embed=rtitem.EmbeddedObjects(0)

   Set OLEObject=uidoc.GetObject(embed.name)

   Else

   '在当前文档的Body域中创建一个新的、空白的Microsoft Word对象,对象名为Microsoft Word 文档,对象类型为Word.Document.8

  Set OLEObject=uidoc.CreateObject("Microsoft Word 文档","Word.Document.8","")

   Call uidoc.save

   End If

   With OLEObject

   .TrackRevisions = True

   '保留修改痕迹

   .PrintRevisions = True

   '打印修改痕迹

   .ShowRevisions = True

   '显示修改痕迹

  .Application.UserName=Session.CommonUserName

   End With

   End Sub

   2.“隐藏痕迹”操作按钮功能及实现代码如下:

   Sub Click(Source As Button)

   Dim session As New NotesSession

   Dim ws As New Notesuiworkspace

   Dim uidoc As Notesuidocument

   Dim doc As Notesdocument

   Set uidoc=ws.currentdocument

   Set doc=uidoc.document

   If (doc.HasEmbedded) Then

   Set rtitem=doc.GetFirstItem("Body")

   Set embed=rtitem.EmbeddedObjects(0)

   Set OLEObject=uidoc.GetObject(embed.name)

   With OLEObject

   .TrackRevisions =True

   .PrintRevisions = False

   .ShowRevisions = False

   .Application.UserName=Session.CommonUserName

   End With

   End If

   End Sub

   隐藏修改痕迹,即不显示,但仍可保留修改痕迹,一般在打印正式文件时使用。

  3.“查看痕迹”操作按钮功能及实现代码如下:

   Sub Click(Source As Button)

   Dim session As New NotesSession

   Dim ws As New Notesuiworkspace

   Dim uidoc As Notesuidocument

   Dim doc As Notesdocument

   Set uidoc=ws.currentdocument

   Set doc=uidoc.document

   If (doc.HasEmbedded) Then

   Set rtitem=doc.GetFirstItem("Body")

   Set embed=rtitem.EmbeddedObjects(0)

   Set OLEObject=uidoc.GetObject(embed.name)

   With OLEObject

   .TrackRevisions = True

   '.PrintRevisions = True

   .ShowRevisions = True

   .Application.UserName=Session.CommonUserName

   End With

   End If

   End Sub

  通过以上步骤,就可以实现文档修改痕迹的保留的基本功能 ,以上程序在Lotus Notes R5上测试通过,希望对感兴趣的读者能提供一定的帮助。