Lotus Notes Lotus Script

Sub OutPutLink

Dim rtf As NotesRichTextItem
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set doccol=db.AllDocuments '此方法仅能用于代理方能正常运行。
Set doc = doccol.GetFirstDocument()
flg=False
If doccol.count>0 Then
Set doc=doccol.Getfirstdocument()
For i=1 To doccol.count
On Error Resume Next
Set rti=doc.GetFirstItem("Body")
Set rtf=doc.GetFirstItem("Body")
Set rtnav=rti.CreateNavigator
Set rtlink = rtnav.getfirstelement(RTELEM_TYPE_DOCLINK)
flg=True
While (flg)
If Not rtlink Is Nothing Then
Call rtf.BeginInsert(rtnav)
Call rtf.AppendText(rtlink.Docunid)
Call rtf.EndInsert
Set rtlink = rtnav.getnextelement
Else
flg=False
End If
Wend

Call doc.Save(True,True)
Set doc=doccol.getnextdocument(doc)
Next
End If
Print "提取完毕!"

End Sub

Sub OutPutFile

Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim rtitem As Variant
Dim NotesItem As NotesItem
Dim link As NotesRichTextDoclink
Dim flg As Boolean
Dim folderName As String
Dim id As String
Dim fileCount As Integer
fileCount=0
Dim subFolder As String
Set db = session.CurrentDatabase
Set doccol=db.AllDocuments '此方法仅能用于代理方能正常运行。
Set doc = doccol.GetFirstDocument()
flg=False

If doccol.count>0 Then

Set doc=doccol.Getfirstdocument()

For i=1 To doccol.count

Set rtitem = doc.GetFirstItem( "Body" )

Set rtf = doc.GetFirstItem( "Body" )

id=doc.UniversalID

folderName = "C:\temp" & "" & id

On Error Resume Next

fileCount=0

If Dir$(folderName,16)="" Then
Mkdir folderName
End If

Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
subFolder = folderName & "" & fileCount
If Dir$(subFolder,16)="" Then
Mkdir subFolder
End If

Set obj=o

If Not obj Is Nothing Then
Call rtf.BeginInsert(obj)
Call rtf.AppendText("$$" & obj.Name & "$$")
Call rtf.EndInsert
End If

Call o.ExtractFile(subFolder & "" & o.Name)
fileCount=fileCount+1
End If
End Forall

Dim attachName As Variant

Dim attachObj As NotesEmbeddedObject

attachName=Evaluate(|@AttachmentNames|,doc)

Forall item In attachName
Set attachObj= doc.GetAttachment(item)
If Not attachObj Is Nothing Then
subFolder = folderName & "" & fileCount
If Dir$(subFolder,16)="" Then
Mkdir subFolder
End If
Call attachObj.ExtractFile(subFolder & "" & item)
fileCount=fileCount+1
End If
End Forall

Set doc=doccol.getnextdocument(doc)
Next
End If
Print "提取完毕!"
End Sub

posted @ 2020-03-31 22:29  任锋  阅读(226)  评论(0)    收藏  举报