Lotus notes 将文本附加到RichText项(“正文”)会产生两个正文项…为什么?

Lotus notes 将文本附加到RichText项(“正文”)会产生两个正文项…为什么?,lotus-notes,lotus-domino,Lotus Notes,Lotus Domino,电子邮件到达mail-in数据库。我查看它,发现它有一个单独的主体项,即富文本 在新邮件到达后运行的代理中,我想更新到达备忘录,并将一些文本附加到正文项,然后保存它。我使用getfirstitem获取句柄,然后在连续的代码行中使用AddNewLine和Appendtext,在保存之前向其添加一点文本 完成后,我再次查看后端文档,以前只有一个主体项,现在有两个主体项。每一个都有我期望的单个项目的一部分。在这两者之间,什么都不缺 注意:收到的电子邮件也有附件…但在我更新它之前,它本来是有附件的,而且

电子邮件到达mail-in数据库。我查看它,发现它有一个单独的主体项,即富文本

在新邮件到达后运行的代理中,我想更新到达备忘录,并将一些文本附加到正文项,然后保存它。我使用getfirstitem获取句柄,然后在连续的代码行中使用AddNewLine和Appendtext,在保存之前向其添加一点文本

完成后,我再次查看后端文档,以前只有一个主体项,现在有两个主体项。每一个都有我期望的单个项目的一部分。在这两者之间,什么都不缺

注意:收到的电子邮件也有附件…但在我更新它之前,它本来是有附件的,而且只有一个正文项目

注意2:从Outlook发送电子邮件。我不知道这有什么关系

是什么导致了这一点,或者我可以做些什么来解决这一问题。接受所有建议/想法

多谢各位


马特·史密斯(Matt Smith)

如果在完成添加后(如果显式保存,则在保存前)在正文上调用
Compact
,则可能会将其缩减为单个项目,但不能保证

在某些情况下,主体被强制为两个或多个项目。例如:

  • 如果一封电子邮件以MIME形式发送(这对于来自网络之外的电子邮件来说很常见),则每个MIME部分始终是一个单独的正文项目,并且一封电子邮件通常有2个或更多MIME部分
  • 我认为每个富文本项对原始数据都有一个严格的64KB大小限制,因此超过64KB的内容总是有两个或更多项,但我不确定这一点

正如其他人在评论中所说的那样,富文本内容有多个条目是正常的。你不应该关心这个。如果您使用
GetFirstItem
获取富文本项并在其末尾添加文本,则从最终用户的角度来看,它就像一个项一样。

我决定用另一种方法来完成我需要的内容,而不是附加文本,因此这个问题不再需要帮助,只是为了满足我自己的好奇心。谢谢大家。

一个文档可以有很多正文字段,这是很正常的。Body也是一个RichTextField,其行为与纯文本字段非常不同,因此仅获取项并附加到其值的方式并不相同。我建议您仔细阅读NotesRichText类。我知道一个文档可以有多个正文项(以及其他字段),但我正在尝试仅获取一个现有项的句柄并对其进行编辑…而不是导致它产生多个项。我刚刚查看了关于NotesRichTextItem的所有帮助,没有发现任何线索可以告诉我是什么导致了这一点。您是否需要将其保留为一个正文项。Notes在其API背后有30年的编程经验,旨在呈现单个逻辑富文本项,同时通过将其拆分为多个物理项来优化其内部操作。也许它是最优的,也可能不是,但为了尝试和控制它,您必须使用低级的C API代码。根据帮助所述,为了获得对现有富文本项的句柄,您使用“getfirstitem”,并且假设您只能访问同名的任意多个项中的第一个。因为我想在所有内容的底部添加文本,所以我希望只有一个,这样我就可以使用“appendtext”。然而,我重写了所有内容,以不同的方式处理我的任务,并找到了另一种方式来完成我想要完成的任务。出于这个原因,我将标记这个问题已经解决,但它为什么要做它正在做的事情仍然是一个疑问。