2016-12-01 24 views
2

我有一個要求,那裏是它有一個附件,當我點擊一個按鈕,它會打開一個新的形式的文件。此表單必須在富文本字段中具有該附件。我已經寫下面的代碼在新形式的PostOpen的事件打開複製附件指出

Set item1= tardoc.GetFirstItem("Comments") 
    Set item= sourcedoc.GetFirstItem("Current_US") 
    If Not item Is Nothing Then 
     If item.Type = RICHTEXT Then 
      Set rtitem = item 
      If Not Isempty(rtitem.EmbeddedObjects) Then 
       Forall fileItem In rtitem.EmbeddedObjects 
        If fileItem.Type = EMBED_ATTACHMENT Then 
         Call fileItem.ExtractFile(filepath _ 
         & Cstr(fileItem.Name)) 
         attFile = filepath & Cstr(fileItem.Name) 
         Call item1.EmbedObject(EMBED_ATTACHMENT, "", attFile) 
        End If 
       End Forall 
      End If 
     End If 
    End If 

的sourcedoc是從其中附件具有要複製的文檔和tardoc是其中附件具有所述文檔被複制並且它也是打開的新文檔,所以在這個表單的postopen事件中,我編寫了代碼。但是在這一行代碼失敗,說沒有設置對象變量。 調用item1.EmbedObject(EMBED_ATTACHMENT,「」,attFile)

回答

3

該代碼在Postopen事件中不起作用,因爲更改富文本字段爲時已晚。

創建與後端類和開放文檔進行編輯,然後一個按鈕文檔。

Dim session As New NotesSession 
Dim workspace As New NotesUIWorkspace 
Dim tardoc As NotesDocument 
Dim item1 As NotesRichTextItem 

Set tardoc = session.CurrentDatabase.CreateDocument 
tardoc.Form = "YourForm" 
Set item1= tardoc.CreateRichtextItem("Comments") 
Set item= sourcedoc.GetFirstItem("Current_US") 
If Not item Is Nothing Then 
    If item.Type = RICHTEXT Then 
     ... your code ... 
    End If 
End If 
Call workspace.EditDocument(True, tardoc) 

由於tardoc是你當我在一個按鈕,使用此代碼來創建目標的富文本字段第一

Set item1= tardoc.CreateRichTextItem("Comments") 
+0

一個新的文件,我得到一個變種不包含對象錯誤。同樣點擊這個按鈕,目標文檔應該在編輯模式下打開。 感謝您的幫助! – Harshi

+0

我的代碼示例只是一個片段。另外不要忘記設置sourcedoc。激活Lotusscript調試器以查看「變體不容器」錯誤發生的位置。最後一行中的True參數確保目標文檔在編輯模式下打開。 –