正文内容在显示此符号的文档属性“” []中为空,而不是内容。消息框Lotus脚本的getItemValue(“ Body”)也显示为null。如何解决呢?
子点击(来源为按钮)昏暗的笔记Dim db作为NotesDatabaseDim doc作为NotesDocument昏暗的颜色为NotesDocumentCollection
Set s = New NotesSession
Set db = s.CurrentDatabase
Set col = db.UnprocessedDocuments
Print "Collection Size:"& col.Count
Set doc = col.GetFirstDocument
If doc.HasItem("Body") Then
While Not doc Is Nothing
Dim body As Variant
body = doc.GetItemValue("Body")
Msgbox (body(0))
Set doc = col.GetNextDocument(doc)
Wend
End If
结束子
因为(通常)正文是一个RTF文本字段,所以这些字段的处理方式有所不同。请参阅Designer帮助中的NotesRichTextItem。
从您的代码开始:
Set s = New NotesSession
Set db = s.CurrentDatabase
Set col = db.UnprocessedDocuments
Print "Collection Size:"& col.Count
Set doc = col.GetFirstDocument
While Not doc Is Nothing
Dim body As Variant
If doc.HasItem("Body") Then
Set body = doc.GetFirstItem("Body") ' now body contains the richtext item
Msgbox body.UnformattedText
End If
Set doc = col.GetNextDocument(doc)
Wend
注意,应该为您将MIME项目转换为富文本格式。如果要处理MIME类型,则必须使用NotesMimeHeader和NotesMimeEntity类。请参阅帮助数据库,特别是这些类上的示例很有趣。
您不能像引用普通NotesItem一样引用NotesRichtTextItem。富文本字段可以包含图形,表格,字体,颜色和其他非文本的内容。它是否确实包含这些东西并不重要。它永远不是简单的字符串数组,因此未定义Body(0)。查找NotesRichTextItem类的方法。您会发现一个名为getUnformattedText的代码,它将返回字段值的简单文本表示形式。
((有一些将字段值获取为HTML的选项,这样您也可以获得所有格式标记,但前提是该字段实际上是作为MIME而不是Notes富文本格式存储的。)