1

这对你来说很难:我有一个 NotesForm 对象,我得到了整个结构,包括字段的默认值,其中一些是公式。现在,我正在使用代码为该表单创建一些 NotesDocument 对象。我事先不知道 NSF 的结构 - 只有在运行时,数据库可以来自任何地方。所以,这意味着我也不知道公式是什么。

现在,我想知道的是:有没有一种方法可以将我从默认值(例如:@Today)中读取的一些公式文本传递给 Notes,并获取该公式的结果?然后我可以在生成文档时使用该值。就目前而言,如果这些字段是通过 Notes 客户端输入的,那么当它们完全可以具有默认值时,它们是空白的。

有任何想法吗?

4

1 回答 1

6

您可以使用评估功能/方法。如果您在 Notes/Domino 环境中使用 LotusScript 进行操作,则可以使用如下内容:

Dim result As Variant
result = Evaluate(formulaString [,doc])

上面代码片段中的 NotesDocument 对象doc是可选的,但如果您正在评估使用来自特定文档的数据的公式,则它是必需的。您不需要使用它来评估@Today,但如果您的公式使用来自另一个字段的值,那么您需要告诉公式语言引擎要使用哪个文档(它没有上下文提示) “纯公式”的情况)。

如果您使用的是 COM 或 Java,则 Evaluate 语句不是语言的一部分,因此它作为 Notes 会话对象的方法来处理。

Evaluate 原生返回一个 Variant,通常包含一个 Array(它也可能返回一个错误值)。在 LotusScript 中,如果您期望返回单个标量值,请使用 Variant 并获取第零个索引。在 VB 经典或 VBA 中,它将是一个 Variant。在 .NET 中,它是一个对象;在 Java 中它将是一个向量。

于 2010-09-30T05:18:18.970 回答