2014-01-26 33 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:感谢您的评论 - 在我的答案中添加了演员 - 无法在此处进行测试。 –