我正在分析一个正在获取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:如上面的数据所示)。请告诉我这是如何工作的或文档的任何链接。
提前致谢。
答案 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