这对你来说很难:我有一个NotesForm对象,我得到了整个结构,包括字段的默认值,其中一些是公式。现在,我正在使用代码为该表单创建一些NotesDocument对象。我事先不知道NSF的结构 - 只在运行时,数据库可以来自任何地方。所以,这意味着我也不知道公式是什么。
现在,我想知道的是:有没有办法可以将我从默认值(例如:@Today)读取的公式文本传递给Notes并获取该公式的结果?然后我可以在生成文档时使用该值。就目前而言,如果这些字段是通过Notes客户端输入的,那么这些字段就可以很好地具有默认值。
有什么想法吗?
答案 0 :(得分: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 classic或VBA中,它将是一个Variant。在.NET中,它是一个对象;在Java中它将是一个向量。