Lotusscript NotesDocument值

时间:2014-05-30 07:40:59

标签: lotus-notes lotusscript

我正在分析一个正在获取NotesDocument的lotuscript模块。

现在考虑作为一个例子,NotesDocument封装了以下数据:

docvalue:<html><head> head </head><body>body</body></html>

现在以下是如何工作的?

Dim document As NotesDocument    
Dim data as Variant    
' Assume code to fetch NotesDocument has been done.
' statement to fetch html data.    
data=document.docvalue(0)

我没有找到任何Lotus文档,我们可以在“:”之后获取值作为分隔符(在本例中为docvalue:如上面的数据所示)。请告诉我这是如何工作的或文档的任何链接。

提前致谢。

2 个答案:

答案 0 :(得分:3)

使用strRight()。它从搜索字符串中直接为您提供字符串:

data=strRight(document.docvalue(0), ":")

答案 1 :(得分:1)

Knut有正确的答案,如果您使用Notes 6.x或更高版本(我相信),您可以使用StrRight()。

另外,我想指出代码应该稍微修改一下。您首先将数据声明为变体,但之后只读取该字段的第一个字符串值。

如果它是一个多值字段(并且您想要在数组中返回所有值),则将变量声明为variant,但是返回整个字段。如果您只想要第一个值(或者该字段只包含一个值),请将 data 声明为String并获取与您相同的第一个元素。

另外,我建议不要像你一样使用扩展表示法,而是使用NotesDocument类的GetItemValue方法。它被认为是最佳实践,它是向前兼容的,也更快。我还总是将字段名称与文档中的字段名称完全一致,这也是出于性能原因。它在这里可能没什么区别,但是当您使用GetView()时,大小写确实很重要。

所以你的代码应该是这样的:

Dim doc As NotesDocument    
Dim data as String    
Dim html as String
' Assume code to fetch NotesDocument has been done.
' statement to fetch html data.    
data = doc.GetItemValue("DocValue")(0)
html = StrRight(data,":")
Print html

或者,如果你有多个值:

Dim doc As NotesDocument    
Dim dataArray as Variant    
Dim html as String
' Assume code to fetch NotesDocument has been done.
' statement to fetch html data.    
dataArray = doc.GetItemValue("DocValue")
ForAll item in dataArray
    html = StrRight(item,":")
    Print html
End Forall