2014-01-26 29 views
0

我的問題:我在C#代碼;我已經得到notesdocument。我無法從文檔中獲取notesrichtextitem(直接)。我現在只是得到notesitem。 因此,我需要直接獲取notesrichtextitem,或者將notesitem轉換爲notesrichtextitem。從NotesDocument直接獲取NotesRichTextItem

我想添加一個新的或添加更多附件到RichText字段。

以下是我如何添加附件到蓮花文件的一些信息。它正在工作,但我仍然不喜歡這個代碼。 請告訴我如何直接去做!

我正在lotus中使用notesrichtext項目,但對於我的項目,我必須使用c#編碼,並且連接到notesrichtextitem是個大問題。 實際上,不支持從文檔(蓮花)到notesrichtextitem(c#中的對象)獲取對象。 因此,我找到了一個新的解決方案來超越蓮花!^ __^@ !.

我在c#中編寫代碼。使用.net 2.0;使用Interop.Domino 1.2.0.0; VS 2010;

這是我的演示代碼(這是工作):

//start demo code 
     NotesItem rtf2 = dockey.GetFirstItem(RTfield.ToString()); 
     if (rtf2 != null) 
     { 
      dockey.RemoveItem(RTfield.ToString()); 
     } 
     // just 1 item is insert; 
     NotesRichTextItem rtf = dockey.CreateRichTextItem(RTfield.ToString()); 
     rtf.EmbedObject(EMBED_TYPE.EMBED_ATTACHMENT, "", Dfilepath); // set attachment to richtextfield 
     dockey.Save(true, false); 
//end demo code. 

正如你看到的,步驟是:

  1. getfirstitem(即返回NOTESITEM)=>我不能沒有做 任何東西保存notesrichtextitem並使用EmbedObject添加 附件DIRECLY。
  2. 刪除存在notesitem
  3. 創造新CreateRichTextItem(名稱相同)
  4. 做任何你想要notesrichtextitem對象,你有。

希望我的解決方案可以幫助任何人通過notesrichtextitem進行工作。 我試圖更多地瞭解富文本字段。 如果有人有一個很好的解決方案,直接從文檔對象的notesrichtextitem工作,請告訴我。

回答

0

NotesRichTextItem類繼承自NotesItem類。它具有NotesItems的所有屬性和方法以及一些RichText特定的屬性和方法。

GetFirstItem()返回一個NotesItem對象,並且在RichText項目的情況下它會自動返回一個NotesRichTextItem對象。這就是爲什麼你可以寫:

NotesRichTextItem rtf = dockey.GetFirstItem(RTfield.ToString()); 
rtf.EmbedObject(EMBED_TYPE.EMBED_ATTACHMENT, "", Dfilepath); // set attachment to richtextfield 
dockey.Save(true, false); 

Interop.Domino通過COM使用Notes類。所以,Notes類應該在那裏工作,就像在LotusScript中一樣。不過,您可能需要將GetFirstItem()的結果轉換爲(NotesRichTextItem)

+0

我在錯誤的計算機上檢查這個(沒有安裝Visual Studio),但我認爲你需要在轉換爲rtf時轉換爲(NotesRichTextItem)。如果我錯了,請糾正我。 –

+0

@Richard:感謝您的評論 - 在我的答案中添加了演員 - 無法在此處進行測試。 –