为什么Lotus Notes注释中的文档属性正文值为空?

问题描述 投票:1回答:2

enter image description here正文内容在显示此符号的文档属性“” []中为空,而不是内容。消息框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

结束子

javascript lotus-notes lotusscript domino-designer-eclipse
2个回答
1
投票

因为(通常)正文是一个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类。请参阅帮助数据库,特别是这些类上的示例很有趣。


0
投票

您不能像引用普通NotesItem一样引用NotesRichtTextItem。富文本字段可以包含图形,表格,字体,颜色和其他非文本的内容。它是否确实包含这些东西并不重要。它永远不是简单的字符串数组,因此未定义Body(0)。查找NotesRichTextItem类的方法。您会发现一个名为getUnformattedText的代码,它将返回字段值的简单文本表示形式。

((有一些将字段值获取为HTML的选项,这样您也可以获得所有格式标记,但前提是该字段实际上是作为MIME而不是Notes富文本格式存储的。)

© www.soinside.com 2019 - 2024. All rights reserved.