lotus 附件的存、 取 、删

 在逛论坛的时候发现的,看到写的不错,故而摘抄了下来。希望大家共同努力!
注意:这个方法是将附件放到富文本中,然后再将富文本当做存储的介质,进行存取删的操作
取附件方法------------------------------------------
通过Notesdocument.EmabledObjects属性取得
Java代码
  1. Dim db As NotesDatabase   
  2. Dim view As NotesView   
  3. Dim doc As NotesDocument   
  4. Set db = New NotesDatabase( "SanFrancisco""hill.nsf" )   
  5. Set view = db.GetView( "All Documents" )   
  6. Set doc = view.GetLastDocument   
  7. If doc.HasEmbedded Then   
  8.   Forall o In doc.EmbeddedObjects   
  9.     Messagebox( o.Name )   
  10.   End Forall   
  11. Else   
  12.   Messagebox "No embedded objects found"  
  13. End If  
  Dim db As NotesDatabase
  Dim view As NotesView
  Dim doc As NotesDocument
  Set db = New NotesDatabase( "SanFrancisco", "hill.nsf" )
  Set view = db.GetView( "All Documents" )
  Set doc = view.GetLastDocument
  If doc.HasEmbedded Then
    Forall o In doc.EmbeddedObjects
      Messagebox( o.Name )
    End Forall
  Else
    Messagebox "No embedded objects found"
  End If


拆离方法-------------------
可以用NotesEmbeddedObject这个对象的ExtractFile方法
Java代码
  1. Dim doc As NotesDocument   
  2. Dim rtitem As Variant   
  3. Dim fileCount As Integer   
  4. Const MAX = 100000  
  5. fileCount = 0       
  6. '...set value of doc...   
  7. Set rtitem = doc.GetFirstItem( "Body" )   
  8. If ( rtitem.Type = RICHTEXT ) Then   
  9.   Forall o In rtitem.EmbeddedObjects   
  10.     If ( o.Type = EMBED_ATTACHMENT ) _   
  11.     And ( o.FileSize > MAX ) Then   
  12.       fileCount = fileCount + 1  
  13.       Call o.ExtractFile _   
  14.       ( "c:\reports\newfile" & Cstr(fileCount) )   
  15.       Call o.Remove   
  16.       Call doc.Save( True, True )   
  17.     End If   
  18.   End Forall   
  19. End If  
Dim doc As NotesDocument
Dim rtitem As Variant
Dim fileCount As Integer
Const MAX = 100000
fileCount = 0    
'...set value of doc...
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
  Forall o In rtitem.EmbeddedObjects
    If ( o.Type = EMBED_ATTACHMENT ) _
    And ( o.FileSize > MAX ) Then
      fileCount = fileCount + 1
      Call o.ExtractFile _
      ( "c:\reports\newfile" & Cstr(fileCount) )
      Call o.Remove
      Call doc.Save( True, True )
    End If
  End Forall
End If


再次上传附件方法-------
可使用Notesrichtextitem的EmbedObject方法上传
Java代码
  1. Dim session As New NotesSession   
  2. Dim db As NotesDatabase   
  3. Dim doc As NotesDocument   
  4. Dim rtitem As NotesRichTextItem   
  5. Dim object As NotesEmbeddedObject   
  6. Set db = session.CurrentDatabase   
  7. Set doc = New NotesDocument( db )   
  8. Set rtitem = New NotesRichTextItem( doc, "Body" )   
  9. Set object = rtitem.EmbedObject _   
  10. ( EMBED_ATTACHMENT, """c:\jim.sam")   
  11. doc.Form = "Main Topic"  
  12. doc.Subject = "Here's Jim's document, as an attachment"  

你可能感兴趣的:(lotusscript)