Lotus Notes Domino API - 从公式生成值

Mat*_*att 1 lotus-notes lotus formula lotus-domino

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

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

有任何想法吗?

Sta*_*ers 6

您可以使用Evaluate函数/方法.如果您在Notes/Domino环境中使用LotusScript进行操作,则可以使用以下内容:

Dim result As Variant
result = Evaluate(formulaString [,doc])
Run Code Online (Sandbox Code Playgroud)

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

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

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